From 3c163bc0b44d31618fa8f08a5e149335f6c8cbc4 Mon Sep 17 00:00:00 2001 From: "John W. Linville" Date: Wed, 4 Apr 2007 15:30:35 -0400 Subject: [PATCH] softmac: avoid assert in ieee80211softmac_wx_get_rate [PATCH] softmac: avoid assert in ieee80211softmac_wx_get_rate Unconfigured bcm43xx device can hit an assert() during wx_get_rate queries. This is because bcm43xx calls ieee80211softmac_start late (i.e. during open instead of probe). bcm43xx_net_open -> bcm43xx_init_board -> bcm43xx_select_wireless_core -> ieee80211softmac_start Fix is to check that device is running before completing ieee80211softmac_wx_get_rate. Signed-off-by: John W. Linville Cc: Chuck Ebbert Signed-off-by: Greg Kroah-Hartman --- net/ieee80211/softmac/ieee80211softmac_wx.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/net/ieee80211/softmac/ieee80211softmac_wx.c b/net/ieee80211/softmac/ieee80211softmac_wx.c index fa2f7da606a9..fb58e03b3fbd 100644 --- a/net/ieee80211/softmac/ieee80211softmac_wx.c +++ b/net/ieee80211/softmac/ieee80211softmac_wx.c @@ -265,6 +265,12 @@ ieee80211softmac_wx_get_rate(struct net_device *net_dev, int err = -EINVAL; spin_lock_irqsave(&mac->lock, flags); + + if (unlikely(!mac->running)) { + err = -ENODEV; + goto out_unlock; + } + switch (mac->txrates.default_rate) { case IEEE80211_CCK_RATE_1MB: data->bitrate.value = 1000000; -- 2.39.5