--- y/net/mac80211/iface.c +++ i/net/mac80211/iface.c @@ -377,9 +377,11 @@ static void ieee80211_do_stop(struct iee bool cancel_scan; struct cfg80211_nan_func *func; - spin_lock_bh(&local->fq.lock); + if (local->ops->wake_tx_queue) + spin_lock_bh(&local->fq.lock); clear_bit(SDATA_STATE_RUNNING, &sdata->state); - spin_unlock_bh(&local->fq.lock); + if (local->ops->wake_tx_queue) + spin_unlock_bh(&local->fq.lock); cancel_scan = rcu_access_pointer(local->scan_sdata) == sdata; if (cancel_scan)