[kernel/f17] Fix rt2x00 usb reset resume (rhbz 856863)

Josh Boyer jwboyer at fedoraproject.org
Mon Oct 22 12:34:49 UTC 2012


commit 951aef5850e02af931f3383906660a35c82313cc
Author: Josh Boyer <jwboyer at redhat.com>
Date:   Mon Oct 22 08:32:00 2012 -0400

    Fix rt2x00 usb reset resume (rhbz 856863)

 kernel.spec                       |    7 ++++
 rt2x00-usb-fix-reset-resume.patch |   70 +++++++++++++++++++++++++++++++++++++
 2 files changed, 77 insertions(+), 0 deletions(-)
---
diff --git a/kernel.spec b/kernel.spec
index ddbf7f5..2c2a1ae 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -753,6 +753,9 @@ Patch22073: mac80211_local_deauth_v3.6.patch
 #rhbz 866013
 Patch22074: mac80211-connect-with-HT20-if-HT40-is-not-permitted.patch
 
+#rhbz 856863
+Patch22075: rt2x00-usb-fix-reset-resume.patch
+
 Patch22072: linux-3.6-arm-build-fixup.patch
 
 # END OF PATCH DEFINITIONS
@@ -1459,6 +1462,9 @@ ApplyPatch mac80211_local_deauth_v3.6.patch
 #rhbz 866013
 ApplyPatch mac80211-connect-with-HT20-if-HT40-is-not-permitted.patch
 
+#rhbz 856863
+ApplyPatch rt2x00-usb-fix-reset-resume.patch
+
 # END OF PATCH APPLICATIONS
 
 %endif
@@ -2323,6 +2329,7 @@ fi
 #              '-'
 %changelog
 * Mon Oct 22 2012 Josh Boyer <jwboyer at redhat.com>
+- Fix rt2x00 usb reset resume (rhbz 856863)
 - Linux v3.6.3
 
 * Mon Oct 22 2012 Peter Robinson <pbrobinson at fedoraproject.org>
diff --git a/rt2x00-usb-fix-reset-resume.patch b/rt2x00-usb-fix-reset-resume.patch
new file mode 100644
index 0000000..07d2b4c
--- /dev/null
+++ b/rt2x00-usb-fix-reset-resume.patch
@@ -0,0 +1,70 @@
+Patch fixes warnings like below happened on resume:
+
+WARNING: at net/mac80211/driver-ops.h:12 check_sdata_in_driver+0x32/0x34()
+
+Problem is that in __ieee80211_susped() we remove sdata (i.e wlan0
+interface) and then during resume we call usb_unbind_interface() ->
+ieee80211_unregister_hw() with sdata removed.
+
+Patch fixes problem by adding .reset_resume calback, hence we do not
+unbind usb device on resume. This callback can be the same as normal
+.resume callback, sice we do all needed initalization during interface
+start, which is performed on resume [ ieee80211_resume() ->
+ieee80211_reconfig() -> rt2x00mac_start() -> rt2x00lib_start ].
+
+Resolves:
+https://bugzilla.kernel.org/show_bug.cgi?id=48041
+
+Reported-by: David Herrmann <dh.herrmann at googlemail.com>
+Reported-and-tested-by: Stephen Boyd <bebarino at gmail.com>
+Cc: stable at vger.kernel.org
+Signed-off-by: Stanislaw Gruszka <sgruszka at redhat.com>
+---
+ drivers/net/wireless/rt2x00/rt2500usb.c |    1 +
+ drivers/net/wireless/rt2x00/rt2800usb.c |    1 +
+ drivers/net/wireless/rt2x00/rt73usb.c   |    1 +
+ 3 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/net/wireless/rt2x00/rt2500usb.c b/drivers/net/wireless/rt2x00/rt2500usb.c
+index a12e84f..6b2e1e4 100644
+--- a/drivers/net/wireless/rt2x00/rt2500usb.c
++++ b/drivers/net/wireless/rt2x00/rt2500usb.c
+@@ -1988,6 +1988,7 @@ static struct usb_driver rt2500usb_driver = {
+ 	.disconnect	= rt2x00usb_disconnect,
+ 	.suspend	= rt2x00usb_suspend,
+ 	.resume		= rt2x00usb_resume,
++	.reset_resume	= rt2x00usb_resume,
+ 	.disable_hub_initiated_lpm = 1,
+ };
+ 
+diff --git a/drivers/net/wireless/rt2x00/rt2800usb.c b/drivers/net/wireless/rt2x00/rt2800usb.c
+index c9e9370..3b8fb5a 100644
+--- a/drivers/net/wireless/rt2x00/rt2800usb.c
++++ b/drivers/net/wireless/rt2x00/rt2800usb.c
+@@ -1282,6 +1282,7 @@ static struct usb_driver rt2800usb_driver = {
+ 	.disconnect	= rt2x00usb_disconnect,
+ 	.suspend	= rt2x00usb_suspend,
+ 	.resume		= rt2x00usb_resume,
++	.reset_resume	= rt2x00usb_resume,
+ 	.disable_hub_initiated_lpm = 1,
+ };
+ 
+diff --git a/drivers/net/wireless/rt2x00/rt73usb.c b/drivers/net/wireless/rt2x00/rt73usb.c
+index e5eb43b..24eec66 100644
+--- a/drivers/net/wireless/rt2x00/rt73usb.c
++++ b/drivers/net/wireless/rt2x00/rt73usb.c
+@@ -2535,6 +2535,7 @@ static struct usb_driver rt73usb_driver = {
+ 	.disconnect	= rt2x00usb_disconnect,
+ 	.suspend	= rt2x00usb_suspend,
+ 	.resume		= rt2x00usb_resume,
++	.reset_resume	= rt2x00usb_resume,
+ 	.disable_hub_initiated_lpm = 1,
+ };
+ 
+-- 
+1.7.1
+
+--
+To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
+the body of a message to majordomo at vger.kernel.org
+More majordomo info at  http://vger.kernel.org/majordomo-info.html
\ No newline at end of file


More information about the scm-commits mailing list