aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/wireless/ipw2200.c23
1 files changed, 20 insertions, 3 deletions
diff --git a/drivers/net/wireless/ipw2200.c b/drivers/net/wireless/ipw2200.c
index 89e076fa1039..0b2c774f5ee7 100644
--- a/drivers/net/wireless/ipw2200.c
+++ b/drivers/net/wireless/ipw2200.c
@@ -8562,9 +8562,26 @@ static int ipw_wx_get_freq(struct net_device *dev,
8562 * configured CHANNEL then return that; otherwise return ANY */ 8562 * configured CHANNEL then return that; otherwise return ANY */
8563 mutex_lock(&priv->mutex); 8563 mutex_lock(&priv->mutex);
8564 if (priv->config & CFG_STATIC_CHANNEL || 8564 if (priv->config & CFG_STATIC_CHANNEL ||
8565 priv->status & (STATUS_ASSOCIATING | STATUS_ASSOCIATED)) 8565 priv->status & (STATUS_ASSOCIATING | STATUS_ASSOCIATED)) {
8566 wrqu->freq.m = priv->channel; 8566 int i;
8567 else 8567
8568 i = ieee80211_channel_to_index(priv->ieee, priv->channel);
8569 BUG_ON(i == -1);
8570 wrqu->freq.e = 1;
8571
8572 switch (ieee80211_is_valid_channel(priv->ieee, priv->channel)) {
8573 case IEEE80211_52GHZ_BAND:
8574 wrqu->freq.m = priv->ieee->geo.a[i].freq * 100000;
8575 break;
8576
8577 case IEEE80211_24GHZ_BAND:
8578 wrqu->freq.m = priv->ieee->geo.bg[i].freq * 100000;
8579 break;
8580
8581 default:
8582 BUG();
8583 }
8584 } else
8568 wrqu->freq.m = 0; 8585 wrqu->freq.m = 0;
8569 8586
8570 mutex_unlock(&priv->mutex); 8587 mutex_unlock(&priv->mutex);