• Stanislaw Gruszka's avatar
    cfg80211/mac80211: disconnect on suspend · 81256969
    Stanislaw Gruszka authored
    If possible that after suspend, cfg80211 will receive request to
    disconnect what require action on interface that was removed during
    suspend.
    
    Problem can manifest itself by various warnings similar to below one:
    
    WARNING: at net/mac80211/driver-ops.h:12 ieee80211_bss_info_change_notify+0x2f9/0x300 [mac80211]()
    wlan0:  Failed check-sdata-in-driver check, flags: 0x4
    Call Trace:
     [<c043e0b3>] warn_slowpath_fmt+0x33/0x40
     [<f83707c9>] ieee80211_bss_info_change_notify+0x2f9/0x300 [mac80211]
     [<f83a660a>] ieee80211_recalc_ps_vif+0x2a/0x30 [mac80211]
     [<f83a6706>] ieee80211_set_disassoc+0xf6/0x500 [mac80211]
     [<f83a9441>] ieee80211_mgd_deauth+0x1f1/0x280 [mac80211]
     [<f8381b36>] ieee80211_deauth+0x16/0x20 [mac80211]
     [<f8261e70>] cfg80211_mlme_down+0x70/0xc0 [cfg80211]
     [<f8264de1>] __cfg80211_disconnect+0x1b1/0x1d0 [cfg80211]
    
    To fix the problem disconnect from any associated network before
    suspend. User space is responsible to establish connection again
    after resume. This basically need to be done by user space anyway,
    because associated stations can go away during suspend (for example
    NetworkManager disconnects on suspend and connect on resume by default).
    
    Patch also handle situation when driver refuse to suspend with wowlan
    configured and try to suspend again without it.
    Signed-off-by: default avatarStanislaw Gruszka <sgruszka@redhat.com>
    Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    81256969
rdev-ops.h 26.5 KB