• Daniel Mack's avatar
    wcn36xx: don't delete invalid bss indices · 2edfcf2b
    Daniel Mack authored
    The firmware code cannot cope with requests to remove BSS indices that have
    not previously been added. This primarily happens when the device is
    suspended and then resumed. ieee80211_reconfig() then calls into
    wcn36xx_bss_info_changed() with an empty bssid and BSS_CHANGED_BSSID set,
    which subsequently leads to a firmware crash:
    
    [   43.647928] qcom-wcnss-pil a204000.wcnss: fatal error received: halMsg.c:4964:halMsg_DelBss: Invalid BSSIndex 0
    [   43.647959] remoteproc remoteproc0: crash detected in a204000.wcnss: type fatal error
    
    To fix this, set bss_index to WCN36XX_HAL_BSS_INVALID_IDX for all bss
    that have not been configured in the firmware, and don't call into the
    firmware with invalid indices.
    Signed-off-by: default avatarDaniel Mack <daniel@zonque.org>
    Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
    2edfcf2b
main.c 35.7 KB