]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
wifi: mac80211: don't unconditionally call drv_mgd_complete_tx()
authorJohannes Berg <johannes.berg@intel.com>
Wed, 5 Feb 2025 09:39:22 +0000 (11:39 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 11 Feb 2025 10:59:07 +0000 (11:59 +0100)
We might not have called drv_mgd_prepare_tx(), so only call
drv_mgd_complete_tx() under the same conditions.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20250205110958.e091fc39a351.Ie6a3cdca070612a0aa4b3c6914ab9ed602d1f456@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/mlme.c

index bb3e42afd34ef67c9fa5c5dfff58cab8049b0294..1d118c30948d189842691da0841bdf6d7330f22a 100644 (file)
@@ -3976,7 +3976,8 @@ static void ieee80211_set_disassoc(struct ieee80211_sub_if_data *sdata,
        if (tx)
                ieee80211_flush_queues(local, sdata, false);
 
-       drv_mgd_complete_tx(sdata->local, sdata, &info);
+       if (tx || frame_buf)
+               drv_mgd_complete_tx(sdata->local, sdata, &info);
 
        /* clear AP addr only after building the needed mgmt frames */
        eth_zero_addr(sdata->deflink.u.mgd.bssid);