John, Please apply Jean's patch to wireless-2.6. It should apply cleanly to the version you pushed earlier today (8/30). I have compiled and tested. For complete operation with WE-21, it also needs the patch entitled [PATCH 2.6.18] WE-21 support (core API) at (http://www.spinics.net/lists/netdev/msg13599.html). It works without that second patch, just at WE-20.
Thanks, Larry ------------------- Patch to update bcm43xx-SoftMAC for WE-21. Signed-off-by: Jean Tourrilhes <[EMAIL PROTECTED]> Signed-off-by: Michael Buesch <[EMAIL PROTECTED]> Signed-off-by: Larry Finger <[EMAIL PROTECTED]> ------------------------------------------------------------- diff -u a/net/ieee80211/softmac/ieee80211softmac_wx.c b/net/ieee80211/softmac/ieee80211softmac_wx.c --- a/net/ieee80211/softmac/ieee80211softmac_wx.c 2006-08-29 14:45:56.000000000 -0700 +++ b/net/ieee80211/softmac/ieee80211softmac_wx.c 2006-08-30 14:56:35.000000000 -0700 @@ -63,6 +63,12 @@ ieee80211softmac_wx_get_scan_results(str } EXPORT_SYMBOL_GPL(ieee80211softmac_wx_get_scan_results); +#if WIRELESS_EXT > 20 +#define IW_ESSID_FIX 0 +#else +#define IW_ESSID_FIX 1 +#endif + int ieee80211softmac_wx_set_essid(struct net_device *net_dev, struct iw_request_info *info, @@ -80,10 +86,10 @@ ieee80211softmac_wx_set_essid(struct net * If it's our network, ignore the change, we're already doing it! */ if((sm->associnfo.associating || sm->associated) && - (data->essid.flags && data->essid.length && extra)) { + (data->essid.flags && data->essid.length)) { /* Get the associating network */ n = ieee80211softmac_get_network_by_bssid(sm, sm->associnfo.bssid); - if(n && n->essid.len == (data->essid.length - 1) && + if(n && n->essid.len == (data->essid.length - IW_ESSID_FIX) && !memcmp(n->essid.data, extra, n->essid.len)) { dprintk(KERN_INFO PFX "Already associating or associated to "MAC_FMT"\n", MAC_ARG(sm->associnfo.bssid)); @@ -109,8 +115,8 @@ ieee80211softmac_wx_set_essid(struct net sm->associnfo.static_essid = 0; sm->associnfo.assoc_wait = 0; - if (data->essid.flags && data->essid.length && extra /*required?*/) { - length = min(data->essid.length - 1, IW_ESSID_MAX_SIZE); + if (data->essid.flags && data->essid.length) { + length = min((int) data->essid.length - IW_ESSID_FIX, IW_ESSID_MAX_SIZE); if (length) { memcpy(sm->associnfo.req_essid.data, extra, length); sm->associnfo.static_essid = 1; diff -u a/drivers/net/wireless/bcm43xx/bcm43xx_wx.c b/drivers/net/wireless/bcm43xx/bcm43xx_wx.c --- a/drivers/net/wireless/bcm43xx/bcm43xx_wx.c 2006-08-29 14:46:08.000000000 -0700 +++ b/drivers/net/wireless/bcm43xx/bcm43xx_wx.c 2006-08-30 14:57:31.000000000 -0700 @@ -334,7 +334,11 @@ static int bcm43xx_wx_get_nick(struct ne size_t len; mutex_lock(&bcm->mutex); +#if WIRELESS_EXT > 20 + len = strlen(bcm->nick); +#else len = strlen(bcm->nick) + 1; +#endif memcpy(extra, bcm->nick, len); data->data.length = (__u16)len; data->data.flags = 1; ======= - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html