Skip to content
  • Eliad Peller's avatar
    mac80211: call ieee80211_mgd_stop() on interface stop · afa762f6
    Eliad Peller authored
    
    
    ieee80211_mgd_teardown() is called on netdev removal, which
    occurs after the vif was already removed from the low-level
    driver, resulting in the following warning:
    
    [ 4809.014734] ------------[ cut here ]------------
    [ 4809.019861] WARNING: at net/mac80211/driver-ops.h:12 ieee80211_bss_info_change_notify+0x200/0x2c8 [mac80211]()
    [ 4809.030388] wlan0:  Failed check-sdata-in-driver check, flags: 0x4
    [ 4809.036862] Modules linked in: wlcore_sdio(-) wl12xx wlcore mac80211 cfg80211 [last unloaded: cfg80211]
    [ 4809.046849] [<c001bd4c>] (unwind_backtrace+0x0/0x12c)
    [ 4809.055937] [<c047cf1c>] (dump_stack+0x20/0x24)
    [ 4809.065385] [<c003e334>] (warn_slowpath_common+0x5c/0x74)
    [ 4809.075589] [<c003e408>] (warn_slowpath_fmt+0x40/0x48)
    [ 4809.088291] [<bf033630>] (ieee80211_bss_info_change_notify+0x200/0x2c8 [mac80211])
    [ 4809.102844] [<bf067f84>] (ieee80211_destroy_auth_data+0x80/0xa4 [mac80211])
    [ 4809.116276] [<bf068004>] (ieee80211_mgd_teardown+0x5c/0x74 [mac80211])
    [ 4809.129331] [<bf043f18>] (ieee80211_teardown_sdata+0xb0/0xd8 [mac80211])
    [ 4809.141595] [<c03b5e58>] (rollback_registered_many+0x228/0x2f0)
    [ 4809.153056] [<c03b5f48>] (unregister_netdevice_many+0x28/0x50)
    [ 4809.165696] [<bf041ea8>] (ieee80211_remove_interfaces+0xb4/0xdc [mac80211])
    [ 4809.179151] [<bf032174>] (ieee80211_unregister_hw+0x50/0xf0 [mac80211])
    [ 4809.191043] [<bf0bebb4>] (wlcore_remove+0x5c/0x7c [wlcore])
    [ 4809.201491] [<c02c6918>] (platform_drv_remove+0x24/0x28)
    [ 4809.212029] [<c02c4d50>] (__device_release_driver+0x8c/0xcc)
    [ 4809.222738] [<c02c4e84>] (device_release_driver+0x30/0x3c)
    [ 4809.233099] [<c02c4258>] (bus_remove_device+0x10c/0x128)
    [ 4809.242620] [<c02c26f8>] (device_del+0x11c/0x17c)
    [ 4809.252150] [<c02c6de0>] (platform_device_del+0x28/0x68)
    [ 4809.263051] [<bf0df49c>] (wl1271_remove+0x3c/0x50 [wlcore_sdio])
    [ 4809.273590] [<c03806b0>] (sdio_bus_remove+0x48/0xf8)
    [ 4809.283754] [<c02c4d50>] (__device_release_driver+0x8c/0xcc)
    [ 4809.293729] [<c02c4e2c>] (driver_detach+0x9c/0xc4)
    [ 4809.303163] [<c02c3d7c>] (bus_remove_driver+0xc4/0xf4)
    [ 4809.312973] [<c02c5a98>] (driver_unregister+0x70/0x7c)
    [ 4809.323220] [<c03809c4>] (sdio_unregister_driver+0x24/0x2c)
    [ 4809.334213] [<bf0df458>] (wl1271_exit+0x14/0x1c [wlcore_sdio])
    [ 4809.344930] [<c009b1a4>] (sys_delete_module+0x228/0x2a8)
    [ 4809.354734] ---[ end trace 515290ccf5feb522 ]---
    
    Rename ieee80211_mgd_teardown() to ieee80211_mgd_stop(),
    and call it on ieee80211_do_stop().
    
    Signed-off-by: default avatarEliad Peller <eliad@wizery.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    afa762f6