• Aditya Kumar Singh's avatar
    wifi: mac80211: fix switch count in EMA beacons · 1afa18e9
    Aditya Kumar Singh authored
    Currently, whenever an EMA beacon is formed, due to is_template
    argument being false from the caller, the switch count is always
    decremented once which is wrong.
    
    Also if switch count is equal to profile periodicity, this makes
    the switch count to reach till zero which triggers a WARN_ON_ONCE.
    
    [  261.593915] CPU: 1 PID: 800 Comm: kworker/u8:3 Not tainted 5.4.213 #0
    [  261.616143] Hardware name: Qualcomm Technologies, Inc. IPQ9574
    [  261.622666] Workqueue: phy0 ath12k_get_link_bss_conf [ath12k]
    [  261.629771] pstate: 60400005 (nZCv daif +PAN -UAO)
    [  261.635595] pc : ieee80211_next_txq+0x1ac/0x1b8 [mac80211]
    [  261.640282] lr : ieee80211_beacon_update_cntdwn+0x64/0xb4 [mac80211]
    [...]
    [  261.729683] Call trace:
    [  261.734986]  ieee80211_next_txq+0x1ac/0x1b8 [mac80211]
    [  261.737156]  ieee80211_beacon_cntdwn_is_complete+0xa28/0x1194 [mac80211]
    [  261.742365]  ieee80211_beacon_cntdwn_is_complete+0xef4/0x1194 [mac80211]
    [  261.749224]  ieee80211_beacon_get_template_ema_list+0x38/0x5c [mac80211]
    [  261.755908]  ath12k_get_link_bss_conf+0xf8/0x33b4 [ath12k]
    [  261.762590]  ath12k_get_link_bss_conf+0x390/0x33b4 [ath12k]
    [  261.767881]  process_one_work+0x194/0x270
    [  261.773346]  worker_thread+0x200/0x314
    [  261.777514]  kthread+0x140/0x150
    [  261.781158]  ret_from_fork+0x10/0x18
    
    Fix this issue by making the is_template argument as true when fetching
    the EMA beacons.
    
    Fixes: bd54f3c2 ("wifi: mac80211: generate EMA beacons in AP mode")
    Signed-off-by: default avatarAditya Kumar Singh <quic_adisi@quicinc.com>
    Link: https://lore.kernel.org/r/20230531062012.4537-1-quic_adisi@quicinc.comSigned-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    1afa18e9
tx.c 165 KB