On Tue, 2010-11-09 at 17:47 +0100, ext Johannes Berg wrote: > On Tue, 2010-11-09 at 10:21 +0200, juuso.oikarinen@xxxxxxxxx wrote: > > > +struct sk_buff *ieee80211_ap_probereq_get(struct ieee80211_hw *hw, > > + struct ieee80211_vif *vif) > > +{ > > + struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); > > + struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; > > + struct sk_buff *skb; > > + const u8 *ssid; > > + > > + if (WARN_ON(sdata->vif.type != NL80211_IFTYPE_STATION)) > > + return NULL; > > + > > + ASSERT_MGD_MTX(ifmgd); > > This is interesting locking, you will definitely need to document better > that this may only be called from within the bss_info_changed callback. Yeah, I agree it is interesting. I was pondering this quite a bit before ending up with this. It appears there is no surefire way to call a function from the driver which needs to access some mgd stuff as the state of the mgd mutex varies depending on mac80211 callback and even state of the stack. I'll add some documentation. -Juuso > johannes > -- 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