On 03/20/2013 10:46 PM, Arend van Spriel wrote: > On 03/20/2013 10:29 PM, Johannes Berg wrote: >> On Wed, 2013-03-20 at 22:17 +0100, Arend van Spriel wrote: >>>> Hmm, why would stopping the supplicant cause brcmfmac to unload?? Or are >>>> you saying you first stop the supplicant, which gets you that warning, >>>> and then unload fails? >>> >>> Indeed, upon stopping wpa_supplicant I get the warning. And doing a >>> rmmod from the command line after that fails in the hang. >> >> Right, ok. >> >>>>> [ 1634.039095] WARNING: at kernel/rcutree.c:1960 >>>>> rcu_process_callbacks+0x469/0x560() >>>> >>>>> [ 1634.133917] Call Trace: >>>>> [ 1634.139833] [<c1039c92>] warn_slowpath_common+0x72/0xa0 >>>>> [ 1634.148659] [<c10c61f9>] ? rcu_process_callbacks+0x469/0x560 >>>>> [ 1634.157914] [<c10c61f9>] ? rcu_process_callbacks+0x469/0x560 >>>>> [ 1634.167121] [<c1039ce2>] warn_slowpath_null+0x22/0x30 >>>>> [ 1634.175725] [<c10c61f9>] rcu_process_callbacks+0x469/0x560 >>>> >>>> Can't say I understand this warning ... >>>> >>> >>> At least we are on the same page then ;-) >> >> It looks like some rcu head list corruption ... no idea really. >> > > I have now (I think). I did a kfree of the driver's vif structure, which > is container of the wireless_dev and that is still on the rcu head list. > >>> The p2p device is already removed upon stopping wpa_supplicant through >>> .del_virtual_intf() callback. Took a quick peek in >>> net/mac80211/iface.c:ieee80211_if_remove() and wonder whether I should >>> do cfg80211_unregister_wdev() in that code path as well. Guess so, right? >> >> I think so, yes. Does the warning go away if you do? :) > > Not tested yet. That did the trick. Apparently, wpa_s/driver_nl80211 does not do a stop_p2p_device. That is triggered by cfg80211_unregister_wdev(). Should wpa_s do the stop_p2p_device before deleting it or is the current behaviour fine. Regards, Arend -- 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