Skip to content

Commit 3f3d8ff

Browse files
Miriam-Racheljmberg-intel
authored andcommitted
wifi: mac80211: don't increment crypto_tx_tailroom_needed_cnt twice
In reconfig, in case the driver asks to disconnect during the reconfig, all the keys of the interface are marked as tainted. Then ieee80211_reenable_keys will loop over all the interface keys, and for each one it will a) increment crypto_tx_tailroom_needed_cnt b) call ieee80211_key_enable_hw_accel, which in turn will detect that this key is tainted, so it will mark it as "not in hardware", which is paired with crypto_tx_tailroom_needed_cnt incrementation, so we get two incrementations for each tainted key. Then we get a warning in ieee80211_free_keys. To fix it, don't increment the count in ieee80211_reenable_keys for tainted keys Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com> Link: https://patch.msgid.link/20260118092821.4ca111fddcda.Id6e554f4b1c83760aa02d5a9e4e3080edb197aa2@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
1 parent 5dc6975 commit 3f3d8ff

1 file changed

Lines changed: 2 additions & 1 deletion

File tree

net/mac80211/key.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -987,7 +987,8 @@ void ieee80211_reenable_keys(struct ieee80211_sub_if_data *sdata)
987987

988988
if (ieee80211_sdata_running(sdata)) {
989989
list_for_each_entry(key, &sdata->key_list, list) {
990-
increment_tailroom_need_count(sdata);
990+
if (!(key->flags & KEY_FLAG_TAINTED))
991+
increment_tailroom_need_count(sdata);
991992
ieee80211_key_enable_hw_accel(key);
992993
}
993994
}

0 commit comments

Comments
 (0)