[kernel/f16] Apply patch from Stanislaw Gruszka to fix mac80211 issue (rhbz 862168)
Josh Boyer
jwboyer at fedoraproject.org
Thu Oct 18 12:37:04 UTC 2012
commit bdfb624a6708f75332cfc1fdb39fd0bfd4019f25
Author: Josh Boyer <jwboyer at redhat.com>
Date: Thu Oct 18 08:33:53 2012 -0400
Apply patch from Stanislaw Gruszka to fix mac80211 issue (rhbz 862168)
kernel.spec | 7 ++++
mac80211_local_deauth_v3.6.patch | 66 ++++++++++++++++++++++++++++++++++++++
2 files changed, 73 insertions(+), 0 deletions(-)
---
diff --git a/kernel.spec b/kernel.spec
index 2fbb11c..0cdb400 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -684,6 +684,9 @@ Patch21306: shlib_base_randomize.patch
#rhbz 770484
Patch22071: iwlwifi-fix-6000-ch-switch.patch
+#rhbz 862168
+Patch22073: mac80211_local_deauth_v3.6.patch
+
# Debug patches
Patch30000: weird-root-dentry-name-debug.patch
Patch30010: debug-808990.patch
@@ -1293,6 +1296,9 @@ ApplyPatch debug-808990.patch
#rhbz 770484
ApplyPatch iwlwifi-fix-6000-ch-switch.patch
+#rhbz 862168
+ApplyPatch mac80211_local_deauth_v3.6.patch
+
# END OF PATCH APPLICATIONS
%endif
@@ -1994,6 +2000,7 @@ fi
%changelog
* Thu Oct 18 2012 Josh Boyer <jwboyer at redhat.com>
+- Apply patch from Stanislaw Gruszka to fix mac80211 issue (rhbz 862168)
- Apply patch to fix iwlwifi crash (rhbz 770484)
* Tue Oct 16 2012 Dave Jones <davej at redhat.com> 3.6.2-1
diff --git a/mac80211_local_deauth_v3.6.patch b/mac80211_local_deauth_v3.6.patch
new file mode 100644
index 0000000..3b63486
--- /dev/null
+++ b/mac80211_local_deauth_v3.6.patch
@@ -0,0 +1,66 @@
+diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
+index 3d254e1..f10553c 100644
+--- a/include/net/cfg80211.h
++++ b/include/net/cfg80211.h
+@@ -1217,6 +1217,7 @@ struct cfg80211_deauth_request {
+ const u8 *ie;
+ size_t ie_len;
+ u16 reason_code;
++ bool local_state_change;
+ };
+
+ /**
+diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
+index f76b833..08343c2 100644
+--- a/net/mac80211/mlme.c
++++ b/net/mac80211/mlme.c
+@@ -3457,6 +3457,7 @@ int ieee80211_mgd_deauth(struct ieee80211_sub_if_data *sdata,
+ {
+ struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
+ u8 frame_buf[DEAUTH_DISASSOC_LEN];
++ bool tx = !req->local_state_change;
+
+ mutex_lock(&ifmgd->mtx);
+
+@@ -3473,12 +3474,11 @@ int ieee80211_mgd_deauth(struct ieee80211_sub_if_data *sdata,
+ 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
+ ieee80211_send_deauth_disassoc(sdata, req->bssid,
+ IEEE80211_STYPE_DEAUTH,
+- req->reason_code, true,
+- frame_buf);
++ req->reason_code, tx, frame_buf);
+ mutex_unlock(&ifmgd->mtx);
+
+ __cfg80211_send_deauth(sdata->dev, frame_buf, DEAUTH_DISASSOC_LEN);
+diff --git a/net/wireless/mlme.c b/net/wireless/mlme.c
+index 1cdb1d5..0877efb 100644
+--- a/net/wireless/mlme.c
++++ b/net/wireless/mlme.c
+@@ -457,21 +457,11 @@ int __cfg80211_mlme_deauth(struct cfg80211_registered_device *rdev,
+ .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;
+- }
+-
+- return 0;
+- }
+-
+ return rdev->ops->deauth(&rdev->wiphy, dev, &req);
+ }
+
More information about the scm-commits
mailing list