Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 447107fb authored by Reinette Chatre's avatar Reinette Chatre Committed by John W. Linville
Browse files

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: default avatarReinette Chatre <reinette.chatre@intel.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent bb608e9d
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -396,8 +396,10 @@ static int ieee80211_config_beacon(struct ieee80211_sub_if_data *sdata,
	 */
	if (params->interval) {
		sdata->local->hw.conf.beacon_int = params->interval;
		ieee80211_hw_config(sdata->local,
		err = ieee80211_hw_config(sdata->local,
					IEEE80211_CONF_CHANGE_BEACON_INTERVAL);
		if (err < 0)
			return err;
		/*
		 * We updated some parameter so if below bails out
		 * it's not an error.
+11 −1
Original line number Diff line number Diff line
@@ -243,10 +243,20 @@ int ieee80211_hw_config(struct ieee80211_local *local, u32 changed)
	if (changed && local->open_count) {
		ret = local->ops->config(local_to_hw(local), changed);
		/*
		 * Goal:
		 * HW reconfiguration should never fail, the driver has told
		 * us what it can support so it should live up to that promise.
		 *
		 * Current status:
		 * rfkill is not integrated with mac80211 and a
		 * configuration command can thus fail if hardware rfkill
		 * is enabled
		 *
		 * FIXME: integrate rfkill with mac80211 and then add this
		 * WARN_ON() back
		 *
		 */
		WARN_ON(ret);
		/* WARN_ON(ret); */
	}

	return ret;