[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