Skip to content

Commit db7205a

Browse files
committed
mac80211: mark TX-during-stop for TX in in_reconfig
Mark TXQs as having seen transmit while they were stopped if we bail out of drv_wake_tx_queue() due to reconfig, so that the queue wake after this will make them catch up. This is particularly necessary for when TXQs are used for management packets since those TXQs won't see a lot of traffic that'd make them catch up later. Cc: stable@vger.kernel.org Fixes: 4856bfd ("mac80211: do not call driver wake_tx_queue op during reconfig") Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Link: https://lore.kernel.org/r/iwlwifi.20211129152938.4573a221c0e1.I0d1d5daea3089be3fc0dccc92991b0f8c5677f0c@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
1 parent 4dde3c3 commit db7205a

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

net/mac80211/driver-ops.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1219,8 +1219,11 @@ static inline void drv_wake_tx_queue(struct ieee80211_local *local,
12191219
{
12201220
struct ieee80211_sub_if_data *sdata = vif_to_sdata(txq->txq.vif);
12211221

1222-
if (local->in_reconfig)
1222+
/* In reconfig don't transmit now, but mark for waking later */
1223+
if (local->in_reconfig) {
1224+
set_bit(IEEE80211_TXQ_STOP_NETIF_TX, &txq->flags);
12231225
return;
1226+
}
12241227

12251228
if (!check_sdata_in_driver(sdata))
12261229
return;

0 commit comments

Comments
 (0)