aboutsummaryrefslogtreecommitdiff
path: root/net/mac80211
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2008-10-07 12:04:34 +0200
committerJohn W. Linville <linville@tuxdriver.com>2008-10-31 18:06:00 -0400
commitd73782fdde76554016abf73b46f843b29f520848 (patch)
tree9b57321ce60ba336dfea63501b1d23d21c700817 /net/mac80211
parent3db594380b8452eda4d88b12844077809607caaa (diff)
mac80211: clean up ieee80211_hw_config errors
Warn when ieee80211_hw_config returns an error, it shouldn't happen; remove a number of printks that would happen in such a case and one printk that is user-triggerable. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211')
-rw-r--r--net/mac80211/cfg.c3
-rw-r--r--net/mac80211/main.c8
-rw-r--r--net/mac80211/scan.c16
-rw-r--r--net/mac80211/util.c5
-rw-r--r--net/mac80211/wext.c6
5 files changed, 13 insertions, 25 deletions
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index 8dc5e46cea6..cf3fd5d6066 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -394,8 +394,7 @@ static int ieee80211_config_beacon(struct ieee80211_sub_if_data *sdata,
*/
if (params->interval) {
sdata->local->hw.conf.beacon_int = params->interval;
- if (ieee80211_hw_config(sdata->local))
- return -EINVAL;
+ ieee80211_hw_config(sdata->local);
/*
* We updated some parameter so if below bails out
* it's not an error.
diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index ff39d893a11..2ff26d03cd5 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -222,8 +222,14 @@ int ieee80211_hw_config(struct ieee80211_local *local)
wiphy_name(local->hw.wiphy), chan->center_freq);
#endif
- if (local->open_count)
+ if (local->open_count) {
ret = local->ops->config(local_to_hw(local), &local->hw.conf);
+ /*
+ * HW reconfiguration should never fail, the driver has told
+ * us what it can support so it should live up to that promise.
+ */
+ WARN_ON(ret);
+ }
return ret;
}
diff --git a/net/mac80211/scan.c b/net/mac80211/scan.c
index 416bb41099f..0989b1c062e 100644
--- a/net/mac80211/scan.c
+++ b/net/mac80211/scan.c
@@ -448,18 +448,12 @@ void ieee80211_scan_completed(struct ieee80211_hw *hw)
if (local->hw_scanning) {
local->hw_scanning = false;
- if (ieee80211_hw_config(local))
- printk(KERN_DEBUG "%s: failed to restore operational "
- "channel after scan\n", wiphy_name(local->hw.wiphy));
-
+ ieee80211_hw_config(local);
goto done;
}
local->sw_scanning = false;
- if (ieee80211_hw_config(local))
- printk(KERN_DEBUG "%s: failed to restore operational "
- "channel after scan\n", wiphy_name(local->hw.wiphy));
-
+ ieee80211_hw_config(local);
netif_tx_lock_bh(local->mdev);
netif_addr_lock(local->mdev);
@@ -546,12 +540,8 @@ void ieee80211_scan_work(struct work_struct *work)
if (!skip) {
local->scan_channel = chan;
- if (ieee80211_hw_config(local)) {
- printk(KERN_DEBUG "%s: failed to set freq to "
- "%d MHz for scan\n", wiphy_name(local->hw.wiphy),
- chan->center_freq);
+ if (ieee80211_hw_config(local))
skip = 1;
- }
}
/* advance state machine to next channel/band */
diff --git a/net/mac80211/util.c b/net/mac80211/util.c
index cee4884b9d0..1b605457017 100644
--- a/net/mac80211/util.c
+++ b/net/mac80211/util.c
@@ -638,11 +638,8 @@ int ieee80211_set_freq(struct ieee80211_sub_if_data *sdata, int freqMHz)
if (chan && !(chan->flags & IEEE80211_CHAN_DISABLED)) {
if (sdata->vif.type == NL80211_IFTYPE_ADHOC &&
- chan->flags & IEEE80211_CHAN_NO_IBSS) {
- printk(KERN_DEBUG "%s: IBSS not allowed on frequency "
- "%d MHz\n", sdata->dev->name, chan->center_freq);
+ chan->flags & IEEE80211_CHAN_NO_IBSS)
return ret;
- }
local->oper_channel = chan;
if (local->sw_scanning || local->hw_scanning)
diff --git a/net/mac80211/wext.c b/net/mac80211/wext.c
index 742f811ca41..29c41040c8c 100644
--- a/net/mac80211/wext.c
+++ b/net/mac80211/wext.c
@@ -689,12 +689,8 @@ static int ieee80211_ioctl_siwtxpower(struct net_device *dev,
ieee80211_led_radio(local, local->hw.conf.radio_enabled);
}
- if (need_reconfig) {
+ if (need_reconfig)
ieee80211_hw_config(local);
- /* The return value of hw_config is not of big interest here,
- * as it doesn't say that it failed because of _this_ config
- * change or something else. Ignore it. */
- }
return 0;
}