When suspending an associated system, and then resuming, the station vif is being reconfigured without taking the sdata->u.mgd.mtx lock, which results in the following warning: WARNING: at net/mac80211/mlme.c:101 ieee80211_ap_probereq_get+0x58/0xb8 [mac) Modules linked in: wl12xx_sdio wl12xx firmware_class crc7 mac80211 cfg80211 ] Backtrace: [<c005432c>] (dump_backtrace+0x0/0x118) from [<c0376a04>] (dump_stack+0x20/0) r7:00000000 r6:bf25f6ec r5:bf286aac r4:00000065 [<c03769e4>] (dump_stack+0x0/0x24) from [<c0079104>] (warn_slowpath_common+0) [<c00790a8>] (warn_slowpath_common+0x0/0x74) from [<c0079148>] (warn_slowpat) r9:000024ff r8:cd160460 r7:00000001 r6:00000000 r5:00000000 r4:cfb9f4a0 [<c007911c>] (warn_slowpath_null+0x0/0x34) from [<bf25f6ec>] (ieee80211_ap_p) [<bf25f694>] (ieee80211_ap_probereq_get+0x0/0xb8 [mac80211]) from [<bf013d04) r4:cd161440 [<bf013cd4>] (wl1271_cmd_build_ap_probe_req+0x0/0xf8 [wl12xx]) from [<bf0105) r5:cd161440 r4:000003b4 [<bf010130>] (wl1271_op_bss_info_changed+0x0/0x808 [wl12xx]) from [<bf254168) [<bf253fc4>] (ieee80211_bss_info_change_notify+0x0/0x1f8 [mac80211]) from [<) r8:cfba12a4 r7:cd16071c r6:00000000 r5:cd160460 r4:cfb9f4a0 [<bf2739b0>] (ieee80211_reconfig+0x0/0x668 [mac80211]) from [<bf269dd4>] (ie) [<bf269d74>] (ieee80211_resume+0x0/0x70 [mac80211]) from [<bf21d930>] (wiphy) r5:cd160248 r4:cd160110 [<bf21d8c4>] (wiphy_resume+0x0/0x7c [cfg80211]) from [<c0240fac>] (legacy_re) r7:00000000 r6:00000000 r5:cd160248 r4:cd1602fc [<c0240f74>] (legacy_resume+0x0/0x70) from [<c0241400>] (device_resume+0x168) r8:c04ca8d8 r7:cd16027c r6:00000010 r5:cd160248 r4:cd1602fc [<c0241298>] (device_resume+0x0/0x1a0) from [<c0241588>] (dpm_resume_end+0xf) r7:00000000 r6:00000005 r5:cd160248 r4:cd1602fc [<c0241490>] (dpm_resume_end+0x0/0x3bc) from [<c00b2a24>] (suspend_devices_a) [<c00b2874>] (suspend_devices_and_enter+0x0/0x204) from [<c00b2b68>] (enter_) r7:c037e548 r6:00000003 r5:c043d1d7 r4:00000000 [<c00b2a78>] (enter_state+0x0/0x148) from [<c00b20a4>] (state_store+0xa4/0xc) r7:c037e548 r6:00000003 r5:00000003 r4:c043d1d7 [<c00b2000>] (state_store+0x0/0xcc) from [<c01fc90c>] (kobj_attr_store+0x20/) [<c01fc8ec>] (kobj_attr_store+0x0/0x24) from [<c0157120>] (sysfs_write_file+) [<c0157004>] (sysfs_write_file+0x0/0x150) from [<c0100f84>] (vfs_write+0xc0/) [<c0100ec4>] (vfs_write+0x0/0x14c) from [<c01010e4>] (sys_write+0x4c/0x78) r8:40228000 r7:00000004 r6:cf0e69c0 r5:00000000 r4:00000000 [<c0101098>] (sys_write+0x0/0x78) from [<c00500c0>] (ret_fast_syscall+0x0/0x) r8:c00502c8 r7:00000004 r6:402245e8 r5:40228000 r4:00000004 Signed-off-by: Eliad Peller <eliad@xxxxxxxxxx> --- net/mac80211/util.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/net/mac80211/util.c b/net/mac80211/util.c index cf68700..d036597 100644 --- a/net/mac80211/util.c +++ b/net/mac80211/util.c @@ -1210,7 +1210,9 @@ int ieee80211_reconfig(struct ieee80211_local *local) switch (sdata->vif.type) { case NL80211_IFTYPE_STATION: changed |= BSS_CHANGED_ASSOC; + mutex_lock(&sdata->u.mgd.mtx); ieee80211_bss_info_change_notify(sdata, changed); + mutex_unlock(&sdata->u.mgd.mtx); break; case NL80211_IFTYPE_ADHOC: changed |= BSS_CHANGED_IBSS; -- 1.7.0.4 -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html