diff options
| author | John W. Linville <linville@tuxdriver.com> | 2011-05-05 13:32:35 -0400 |
|---|---|---|
| committer | John W. Linville <linville@tuxdriver.com> | 2011-05-05 13:32:35 -0400 |
| commit | a70171dce9cd44cb06c7d299eba9fa87a8933045 (patch) | |
| tree | 5425df5f33fadc617c7dec99578d06f0d933578e /net/wireless | |
| parent | 5a412ad7f4c95bb5b756aa12b52646e857e7c75d (diff) | |
| parent | eaef6a93bd52a2cc47b9fce201310010707afdb4 (diff) | |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem
Conflicts:
drivers/net/wireless/libertas/if_cs.c
drivers/net/wireless/rtlwifi/pci.c
net/bluetooth/l2cap_sock.c
Diffstat (limited to 'net/wireless')
| -rw-r--r-- | net/wireless/core.c | 17 | ||||
| -rw-r--r-- | net/wireless/reg.c | 3 |
2 files changed, 19 insertions, 1 deletions
diff --git a/net/wireless/core.c b/net/wireless/core.c index fe01de29bfe8..bbf1fa11107a 100644 --- a/net/wireless/core.c +++ b/net/wireless/core.c | |||
| @@ -46,6 +46,11 @@ static struct dentry *ieee80211_debugfs_dir; | |||
| 46 | /* for the cleanup, scan and event works */ | 46 | /* for the cleanup, scan and event works */ |
| 47 | struct workqueue_struct *cfg80211_wq; | 47 | struct workqueue_struct *cfg80211_wq; |
| 48 | 48 | ||
| 49 | static bool cfg80211_disable_40mhz_24ghz; | ||
| 50 | module_param(cfg80211_disable_40mhz_24ghz, bool, 0644); | ||
| 51 | MODULE_PARM_DESC(cfg80211_disable_40mhz_24ghz, | ||
| 52 | "Disable 40MHz support in the 2.4GHz band"); | ||
| 53 | |||
| 49 | /* requires cfg80211_mutex to be held! */ | 54 | /* requires cfg80211_mutex to be held! */ |
| 50 | struct cfg80211_registered_device *cfg80211_rdev_by_wiphy_idx(int wiphy_idx) | 55 | struct cfg80211_registered_device *cfg80211_rdev_by_wiphy_idx(int wiphy_idx) |
| 51 | { | 56 | { |
| @@ -451,6 +456,18 @@ int wiphy_register(struct wiphy *wiphy) | |||
| 451 | return -EINVAL; | 456 | return -EINVAL; |
| 452 | 457 | ||
| 453 | /* | 458 | /* |
| 459 | * Since cfg80211_disable_40mhz_24ghz is global, we can | ||
| 460 | * modify the sband's ht data even if the driver uses a | ||
| 461 | * global structure for that. | ||
| 462 | */ | ||
| 463 | if (cfg80211_disable_40mhz_24ghz && | ||
| 464 | band == IEEE80211_BAND_2GHZ && | ||
| 465 | sband->ht_cap.ht_supported) { | ||
| 466 | sband->ht_cap.cap &= ~IEEE80211_HT_CAP_SUP_WIDTH_20_40; | ||
| 467 | sband->ht_cap.cap &= ~IEEE80211_HT_CAP_SGI_40; | ||
| 468 | } | ||
| 469 | |||
| 470 | /* | ||
| 454 | * Since we use a u32 for rate bitmaps in | 471 | * Since we use a u32 for rate bitmaps in |
| 455 | * ieee80211_get_response_rate, we cannot | 472 | * ieee80211_get_response_rate, we cannot |
| 456 | * have more than 32 legacy rates. | 473 | * have more than 32 legacy rates. |
diff --git a/net/wireless/reg.c b/net/wireless/reg.c index 58d69959ab28..1613080a96b9 100644 --- a/net/wireless/reg.c +++ b/net/wireless/reg.c | |||
| @@ -1455,7 +1455,8 @@ static void reg_process_hint(struct regulatory_request *reg_request) | |||
| 1455 | * We only time out user hints, given that they should be the only | 1455 | * We only time out user hints, given that they should be the only |
| 1456 | * source of bogus requests. | 1456 | * source of bogus requests. |
| 1457 | */ | 1457 | */ |
| 1458 | if (reg_request->initiator == NL80211_REGDOM_SET_BY_USER) | 1458 | if (r != -EALREADY && |
| 1459 | reg_request->initiator == NL80211_REGDOM_SET_BY_USER) | ||
| 1459 | schedule_delayed_work(®_timeout, msecs_to_jiffies(3142)); | 1460 | schedule_delayed_work(®_timeout, msecs_to_jiffies(3142)); |
| 1460 | } | 1461 | } |
| 1461 | 1462 | ||
