From c4a6d5f5537cc51687752a8494f7c9905d793b7a Mon Sep 17 00:00:00 2001 From: Zhu Yi Date: Mon, 21 Aug 2006 11:37:13 +0800 Subject: [PATCH] --- yaml --- r: 35243 b: refs/heads/master c: ab644b0b51bf3170b398c087b7a34be6d3c7b7ba h: refs/heads/master i: 35241: 0fe526cdece47eb528a64601fa2b963aa068b276 35239: 4cb39ae3979422b939d2e4c9425d62f36f77098c v: v3 --- [refs] | 2 +- trunk/drivers/net/wireless/ipw2200.c | 39 ++++++++++++---------------- 2 files changed, 18 insertions(+), 23 deletions(-) diff --git a/[refs] b/[refs] index 62c551fb78d2..ff0ae2d7c610 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c580f67fd7fa9deee1f4cf6b86c694b880534a82 +refs/heads/master: ab644b0b51bf3170b398c087b7a34be6d3c7b7ba diff --git a/trunk/drivers/net/wireless/ipw2200.c b/trunk/drivers/net/wireless/ipw2200.c index 0b2c774f5ee7..27e87d1b9f44 100644 --- a/trunk/drivers/net/wireless/ipw2200.c +++ b/trunk/drivers/net/wireless/ipw2200.c @@ -8837,28 +8837,23 @@ static int ipw_wx_set_essid(struct net_device *dev, union iwreq_data *wrqu, char *extra) { struct ipw_priv *priv = ieee80211_priv(dev); - char *essid = ""; /* ANY */ - int length = 0; - mutex_lock(&priv->mutex); - if (wrqu->essid.flags && wrqu->essid.length) { - length = wrqu->essid.length - 1; - essid = extra; - } - if (length == 0) { - IPW_DEBUG_WX("Setting ESSID to ANY\n"); - if ((priv->config & CFG_STATIC_ESSID) && - !(priv->status & (STATUS_ASSOCIATED | - STATUS_ASSOCIATING))) { - IPW_DEBUG_ASSOC("Attempting to associate with new " - "parameters.\n"); - priv->config &= ~CFG_STATIC_ESSID; - ipw_associate(priv); - } - mutex_unlock(&priv->mutex); - return 0; - } + char *essid; + int length; + + mutex_lock(&priv->mutex); + + if (!wrqu->essid.flags) + { + IPW_DEBUG_WX("Setting ESSID to ANY\n"); + ipw_disassociate(priv); + priv->config &= ~CFG_STATIC_ESSID; + ipw_associate(priv); + mutex_unlock(&priv->mutex); + return 0; + } - length = min(length, IW_ESSID_MAX_SIZE); + length = min(wrqu->essid.length, IW_ESSID_MAX_SIZE); + essid = extra; priv->config |= CFG_STATIC_ESSID; @@ -8868,7 +8863,7 @@ static int ipw_wx_set_essid(struct net_device *dev, return 0; } - IPW_DEBUG_WX("Setting ESSID: '%s' (%d)\n", escape_essid(essid, length), + IPW_DEBUG_WX("Setting ESSID: '%s' (%d)\n", escape_essid(extra, length), length); priv->essid_len = length;