From 090f16f6fb1019af891be04e2da176f6feb65cc9 Mon Sep 17 00:00:00 2001 From: nbd Date: Sat, 11 Oct 2008 01:33:09 +0000 Subject: mac80211: add rate control rewrite and enhance the performance of the minstrel algorithm for non-mrr configurations git-svn-id: svn://svn.openwrt.org/openwrt/trunk@12948 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- ...mac80211-warn-ieee80211_hw_config-failure.patch | 113 +++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 package/mac80211/patches/412-mac80211-warn-ieee80211_hw_config-failure.patch (limited to 'package/mac80211/patches/412-mac80211-warn-ieee80211_hw_config-failure.patch') diff --git a/package/mac80211/patches/412-mac80211-warn-ieee80211_hw_config-failure.patch b/package/mac80211/patches/412-mac80211-warn-ieee80211_hw_config-failure.patch new file mode 100644 index 000000000..f18569b93 --- /dev/null +++ b/package/mac80211/patches/412-mac80211-warn-ieee80211_hw_config-failure.patch @@ -0,0 +1,113 @@ +Subject: 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 +--- + net/mac80211/cfg.c | 3 +-- + net/mac80211/main.c | 8 +++++++- + net/mac80211/scan.c | 16 +++------------- + net/mac80211/util.c | 5 +---- + net/mac80211/wext.c | 6 +----- + 5 files changed, 13 insertions(+), 25 deletions(-) + +--- everything.orig/net/mac80211/cfg.c 2008-10-07 20:06:42.000000000 +0200 ++++ everything/net/mac80211/cfg.c 2008-10-07 20:06:43.000000000 +0200 +@@ -396,8 +396,7 @@ static int ieee80211_config_beacon(struc + */ + 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. +--- everything.orig/net/mac80211/main.c 2008-10-07 20:06:41.000000000 +0200 ++++ everything/net/mac80211/main.c 2008-10-07 20:06:43.000000000 +0200 +@@ -222,8 +222,14 @@ int ieee80211_hw_config(struct ieee80211 + 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; + } +--- everything.orig/net/mac80211/scan.c 2008-10-07 20:05:27.000000000 +0200 ++++ everything/net/mac80211/scan.c 2008-10-07 20:06:43.000000000 +0200 +@@ -447,18 +447,12 @@ void ieee80211_scan_completed(struct iee + + 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); +@@ -545,12 +539,8 @@ void ieee80211_scan_work(struct work_str + + 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 */ +--- everything.orig/net/mac80211/util.c 2008-10-07 20:05:27.000000000 +0200 ++++ everything/net/mac80211/util.c 2008-10-07 20:06:43.000000000 +0200 +@@ -638,11 +638,8 @@ int ieee80211_set_freq(struct ieee80211_ + + 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) +--- everything.orig/net/mac80211/wext.c 2008-10-07 20:05:27.000000000 +0200 ++++ everything/net/mac80211/wext.c 2008-10-07 20:06:43.000000000 +0200 +@@ -689,12 +689,8 @@ static int ieee80211_ioctl_siwtxpower(st + 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; + } -- cgit v1.2.3