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

Commit d73782fd authored by Johannes Berg's avatar Johannes Berg Committed by John W. Linville
Browse files

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: default avatarJohannes Berg <johannes@sipsolutions.net>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 3db59438
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -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.
+7 −1
Original line number Diff line number Diff line
@@ -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;
}
+3 −13
Original line number Diff line number Diff line
@@ -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,13 +540,9 @@ 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 */
		local->scan_channel_idx++;
+1 −4
Original line number Diff line number Diff line
@@ -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)
+1 −5
Original line number Diff line number Diff line
@@ -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;
}