On Fri, 2008-05-23 at 10:15 -0700, Abhijeet Kolekar wrote: > iwconfig was showing incorrect status messages when disassociated. > Patch fixes this by always checking for association status in > ioctl calls for getting ap address. > > Signed-off-by: Abhijeet Kolekar <abhijeet.kolekar@xxxxxxxxx> I may not remember correctly, but I think you need to also report the BSSID being associated with during assoc & auth stages with WEXT. So the right check here is to return nothing if _disassocated_, but otherwise return the BSSID that's currently pending or associated with. Dan > --- > net/mac80211/wext.c | 11 ++++++++--- > 1 files changed, 8 insertions(+), 3 deletions(-) > > diff --git a/net/mac80211/wext.c b/net/mac80211/wext.c > index c2e2378..1a35562 100644 > --- a/net/mac80211/wext.c > +++ b/net/mac80211/wext.c > @@ -501,9 +501,14 @@ static int ieee80211_ioctl_giwap(struct net_device *dev, > sdata = IEEE80211_DEV_TO_SUB_IF(dev); > if (sdata->vif.type == IEEE80211_IF_TYPE_STA || > sdata->vif.type == IEEE80211_IF_TYPE_IBSS) { > - ap_addr->sa_family = ARPHRD_ETHER; > - memcpy(&ap_addr->sa_data, sdata->u.sta.bssid, ETH_ALEN); > - return 0; > + if (sdata->u.sta.state == IEEE80211_ASSOCIATED) { > + ap_addr->sa_family = ARPHRD_ETHER; > + memcpy(&ap_addr->sa_data, sdata->u.sta.bssid, ETH_ALEN); > + return 0; > + } else { > + memset(&ap_addr->sa_data, 0, ETH_ALEN); > + return 0; > + } > } else if (sdata->vif.type == IEEE80211_IF_TYPE_WDS) { > ap_addr->sa_family = ARPHRD_ETHER; > memcpy(&ap_addr->sa_data, sdata->u.wds.remote_addr, ETH_ALEN); -- 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