aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorReinette Chatre <reinette.chatre@intel.com>2008-12-04 17:49:08 -0500
committerJohn W. Linville <linville@tuxdriver.com>2008-12-12 13:48:20 -0500
commit447107fb32d75425c95a33f58e6b4b760b470092 (patch)
tree83ae7e491ad2c56a9d29d69f38f30967fc2629b6
parentbb608e9db7d29616fb6e0d856c23434610d4a1bd (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.c6
-rw-r--r--net/mac80211/main.c12
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;