diff --git a/kernel.spec b/kernel.spec index d43409ed8..a29163113 100644 --- a/kernel.spec +++ b/kernel.spec @@ -690,6 +690,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 + # Debug patches Patch30000: weird-root-dentry-name-debug.patch Patch30010: debug-808990.patch @@ -1305,6 +1308,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 @@ -2005,6 +2011,9 @@ fi # and build. %changelog +* Mon Oct 22 2012 Josh Boyer +- Fix rt2x00 usb reset resume (rhbz 856863) + * Thu Oct 18 2012 Josh Boyer - Patch to have mac80211 connect with HT20 if HT40 is not allowed (rhbz 866013) - Apply patch from Stanislaw Gruszka to fix mac80211 issue (rhbz 862168) diff --git a/rt2x00-usb-fix-reset-resume.patch b/rt2x00-usb-fix-reset-resume.patch new file mode 100644 index 000000000..07d2b4c0e --- /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 +Reported-and-tested-by: Stephen Boyd +Cc: stable@vger.kernel.org +Signed-off-by: Stanislaw Gruszka +--- + 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@vger.kernel.org +More majordomo info at http://vger.kernel.org/majordomo-info.html \ No newline at end of file