mac80211: handle -EALREADY on cfg80211 op assoc req
Luis R. Rodriguez [Thu, 28 May 2009 02:56:05 +0000 (22:56 -0400)]
When the SME requests to associate to an open AP
ieee80211_sta_set_extra_ie() can be called with zero IE
length. When this happens or when the extra IE has already
been set -EALREADY is passed down and the supplicant will
complain that the operation is already in progress and it will
not let us associate. We correct this by treating -EALREADY
from ieee80211_sta_set_extra_ie() as a success just as we do
for wext.

Cc: Shan.Palanisamy@Atheros.com
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

net/mac80211/cfg.c

index cdfdb2e..d2fc18c 100644 (file)
@@ -1256,7 +1256,7 @@ static int ieee80211_assoc(struct wiphy *wiphy, struct net_device *dev,
                sdata->u.mgd.flags |= IEEE80211_STA_AUTO_SSID_SEL;
 
        ret = ieee80211_sta_set_extra_ie(sdata, req->ie, req->ie_len);
-       if (ret)
+       if (ret && ret != -EALREADY)
                return ret;
 
        if (req->use_mfp) {