aboutsummaryrefslogtreecommitdiffstats
path: root/package/mac80211
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-10-17 18:54:05 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-10-17 18:54:05 +0000
commit1b02f4627aad690121afaadeeab1d82331cd2016 (patch)
tree807cfbeb334e584f3862d2eeb82756d42511be0e /package/mac80211
parentb6aef12fcd2246e78fd4e327f49e33f975d6e13d (diff)
downloadopenwrt-1b02f4627aad690121afaadeeab1d82331cd2016.tar.gz
openwrt-1b02f4627aad690121afaadeeab1d82331cd2016.zip
mac80211: merge a client mode state handling fix, refresh patches
Backport of r33821 git-svn-id: svn://svn.openwrt.org/openwrt/branches/attitude_adjustment@33822 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/mac80211')
-rw-r--r--package/mac80211/patches/300-pending_work.patch59
-rw-r--r--package/mac80211/patches/524-mac80211_configure_antenna_gain.patch4
-rw-r--r--package/mac80211/patches/851-brcmsmac-start-adding-support-for-core-rev-28.patch2
3 files changed, 62 insertions, 3 deletions
diff --git a/package/mac80211/patches/300-pending_work.patch b/package/mac80211/patches/300-pending_work.patch
index f7a0aede5..9a4b24e4e 100644
--- a/package/mac80211/patches/300-pending_work.patch
+++ b/package/mac80211/patches/300-pending_work.patch
@@ -510,6 +510,29 @@
ieee80211_bss_info_change_notify(sdata, changed);
}
+@@ -3526,6 +3572,7 @@ int ieee80211_mgd_deauth(struct ieee8021
+ {
+ struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
+ u8 frame_buf[DEAUTH_DISASSOC_LEN];
++ bool tx = !req->local_state_change;
+
+ mutex_lock(&ifmgd->mtx);
+
+@@ -3542,12 +3589,12 @@ int ieee80211_mgd_deauth(struct ieee8021
+ if (ifmgd->associated &&
+ ether_addr_equal(ifmgd->associated->bssid, req->bssid)) {
+ ieee80211_set_disassoc(sdata, IEEE80211_STYPE_DEAUTH,
+- req->reason_code, true, frame_buf);
++ req->reason_code, tx, frame_buf);
+ } else {
+ drv_mgd_prepare_tx(sdata->local, sdata);
+ ieee80211_send_deauth_disassoc(sdata, req->bssid,
+ IEEE80211_STYPE_DEAUTH,
+- req->reason_code, true,
++ req->reason_code, tx,
+ frame_buf);
+ }
+
--- a/net/mac80211/sta_info.c
+++ b/net/mac80211/sta_info.c
@@ -674,7 +674,7 @@ int __must_check __sta_info_destroy(stru
@@ -590,3 +613,39 @@
if (local->user_power_level >= 0)
power = min(power, local->user_power_level);
+--- a/include/net/cfg80211.h
++++ b/include/net/cfg80211.h
+@@ -1218,6 +1218,7 @@ struct cfg80211_deauth_request {
+ const u8 *ie;
+ size_t ie_len;
+ u16 reason_code;
++ bool local_state_change;
+ };
+
+ /**
+--- a/net/wireless/mlme.c
++++ b/net/wireless/mlme.c
+@@ -457,20 +457,14 @@ int __cfg80211_mlme_deauth(struct cfg802
+ .reason_code = reason,
+ .ie = ie,
+ .ie_len = ie_len,
++ .local_state_change = local_state_change,
+ };
+
+ ASSERT_WDEV_LOCK(wdev);
+
+- if (local_state_change) {
+- if (wdev->current_bss &&
+- ether_addr_equal(wdev->current_bss->pub.bssid, bssid)) {
+- cfg80211_unhold_bss(wdev->current_bss);
+- cfg80211_put_bss(&wdev->current_bss->pub);
+- wdev->current_bss = NULL;
+- }
+-
++ if (local_state_change && (!wdev->current_bss ||
++ !ether_addr_equal(wdev->current_bss->pub.bssid, bssid)))
+ return 0;
+- }
+
+ return rdev->ops->deauth(&rdev->wiphy, dev, &req);
+ }
diff --git a/package/mac80211/patches/524-mac80211_configure_antenna_gain.patch b/package/mac80211/patches/524-mac80211_configure_antenna_gain.patch
index b2870a8aa..b3b4ebb2f 100644
--- a/package/mac80211/patches/524-mac80211_configure_antenna_gain.patch
+++ b/package/mac80211/patches/524-mac80211_configure_antenna_gain.patch
@@ -161,7 +161,7 @@
CFG80211_TESTMODE_CMD(ieee80211_testmode_cmd)
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
-@@ -1551,6 +1551,7 @@ struct cfg80211_gtk_rekey_data {
+@@ -1552,6 +1552,7 @@ struct cfg80211_gtk_rekey_data {
* the power passed is in mBm, to get dBm use MBM_TO_DBM().
* @get_tx_power: store the current TX power into the dbm variable;
* return 0 if successful
@@ -169,7 +169,7 @@
*
* @set_wds_peer: set the WDS peer for a WDS interface
*
-@@ -1750,6 +1751,7 @@ struct cfg80211_ops {
+@@ -1751,6 +1752,7 @@ struct cfg80211_ops {
int (*set_tx_power)(struct wiphy *wiphy,
enum nl80211_tx_power_setting type, int mbm);
int (*get_tx_power)(struct wiphy *wiphy, int *dbm);
diff --git a/package/mac80211/patches/851-brcmsmac-start-adding-support-for-core-rev-28.patch b/package/mac80211/patches/851-brcmsmac-start-adding-support-for-core-rev-28.patch
index 198af613c..bfa9ff5b1 100644
--- a/package/mac80211/patches/851-brcmsmac-start-adding-support-for-core-rev-28.patch
+++ b/package/mac80211/patches/851-brcmsmac-start-adding-support-for-core-rev-28.patch
@@ -1,7 +1,7 @@
--- a/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
+++ b/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
@@ -97,6 +97,7 @@ static struct bcma_device_id brcms_corei
- // BCMA_CORE(BCMA_MANUF_BCM, BCMA_CORE_80211, 17, BCMA_ANY_CLASS),
+ BCMA_CORE(BCMA_MANUF_BCM, BCMA_CORE_80211, 17, BCMA_ANY_CLASS),
BCMA_CORE(BCMA_MANUF_BCM, BCMA_CORE_80211, 23, BCMA_ANY_CLASS),
BCMA_CORE(BCMA_MANUF_BCM, BCMA_CORE_80211, 24, BCMA_ANY_CLASS),
+// BCMA_CORE(BCMA_MANUF_BCM, BCMA_CORE_80211, 28, BCMA_ANY_CLASS),