]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: rtl8xxxu: Perform update_beacon_work when beaconing is enabled
authorMartin Kaistra <martin.kaistra@linutronix.de>
Mon, 30 Sep 2024 08:49:55 +0000 (10:49 +0200)
committerPing-Ke Shih <pkshih@realtek.com>
Sat, 5 Oct 2024 02:57:58 +0000 (10:57 +0800)
In STA+AP concurrent mode, performing a scan operation on one vif
temporarily stops beacons on the other. When the scan is completed,
beacons are enabled again with BSS_CHANGED_BEACON_ENABLED.

We can observe that no beacons are being sent when just
rtl8xxxu_start_tx_beacon() is being called.

Thus, also perform update_beacon_work in order to restore beaconing.

Fixes: cde8848cad0b ("wifi: rtl8xxxu: Add beacon functions")
Signed-off-by: Martin Kaistra <martin.kaistra@linutronix.de>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20240930084955.455241-1-martin.kaistra@linutronix.de
drivers/net/wireless/realtek/rtl8xxxu/core.c

index 7891c988dd5f03b0dd0b7155918e39ef963b3355..f95898f68d68a5788d4ce0d4290a38d4d20f7ada 100644 (file)
@@ -5058,10 +5058,12 @@ rtl8xxxu_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
        }
 
        if (changed & BSS_CHANGED_BEACON_ENABLED) {
-               if (bss_conf->enable_beacon)
+               if (bss_conf->enable_beacon) {
                        rtl8xxxu_start_tx_beacon(priv);
-               else
+                       schedule_delayed_work(&priv->update_beacon_work, 0);
+               } else {
                        rtl8xxxu_stop_tx_beacon(priv);
+               }
        }
 
        if (changed & BSS_CHANGED_BEACON)