diff options
author | Reinette Chatre <reinette.chatre@intel.com> | 2008-12-04 17:49:08 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-12-12 13:48:20 -0500 |
commit | 447107fb32d75425c95a33f58e6b4b760b470092 (patch) | |
tree | 83ae7e491ad2c56a9d29d69f38f30967fc2629b6 | |
parent | bb608e9db7d29616fb6e0d856c23434610d4a1bd (diff) |
mac80211: remove WARN_ON() from ieee80211_hw_config
ieee80211_hw_config can return an error when the hardware
has rfkill enabled. A WARN_ON() is too harsh for this
failure as it is a valid scenario. Only comment this warning
as we would like to have it back when rfkill is integrated into
mac80211.
Also reintroduce propagation of error if ieee80211_hw_config fails
in ieee80211_config_beacon.
This patch partially reverts patch:
5f0387fc3337ca26f0745f945f550f0c3734960f
"mac80211: clean up ieee80211_hw_config errors"
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | net/mac80211/cfg.c | 6 | ||||
-rw-r--r-- | net/mac80211/main.c | 12 |
2 files changed, 15 insertions, 3 deletions
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c index 7a7a6c176dc5..7912eb14eca0 100644 --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c | |||
@@ -396,8 +396,10 @@ static int ieee80211_config_beacon(struct ieee80211_sub_if_data *sdata, | |||
396 | */ | 396 | */ |
397 | if (params->interval) { | 397 | if (params->interval) { |
398 | sdata->local->hw.conf.beacon_int = params->interval; | 398 | sdata->local->hw.conf.beacon_int = params->interval; |
399 | ieee80211_hw_config(sdata->local, | 399 | err = ieee80211_hw_config(sdata->local, |
400 | IEEE80211_CONF_CHANGE_BEACON_INTERVAL); | 400 | IEEE80211_CONF_CHANGE_BEACON_INTERVAL); |
401 | if (err < 0) | ||
402 | return err; | ||
401 | /* | 403 | /* |
402 | * We updated some parameter so if below bails out | 404 | * We updated some parameter so if below bails out |
403 | * it's not an error. | 405 | * it's not an error. |
diff --git a/net/mac80211/main.c b/net/mac80211/main.c index 29c3ecf7e914..df7e9a810b88 100644 --- a/net/mac80211/main.c +++ b/net/mac80211/main.c | |||
@@ -243,10 +243,20 @@ int ieee80211_hw_config(struct ieee80211_local *local, u32 changed) | |||
243 | if (changed && local->open_count) { | 243 | if (changed && local->open_count) { |
244 | ret = local->ops->config(local_to_hw(local), changed); | 244 | ret = local->ops->config(local_to_hw(local), changed); |
245 | /* | 245 | /* |
246 | * Goal: | ||
246 | * HW reconfiguration should never fail, the driver has told | 247 | * HW reconfiguration should never fail, the driver has told |
247 | * us what it can support so it should live up to that promise. | 248 | * us what it can support so it should live up to that promise. |
249 | * | ||
250 | * Current status: | ||
251 | * rfkill is not integrated with mac80211 and a | ||
252 | * configuration command can thus fail if hardware rfkill | ||
253 | * is enabled | ||
254 | * | ||
255 | * FIXME: integrate rfkill with mac80211 and then add this | ||
256 | * WARN_ON() back | ||
257 | * | ||
248 | */ | 258 | */ |
249 | WARN_ON(ret); | 259 | /* WARN_ON(ret); */ |
250 | } | 260 | } |
251 | 261 | ||
252 | return ret; | 262 | return ret; |