70 lines
2.6 KiB
Diff
70 lines
2.6 KiB
Diff
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@googlemail.com>
|
|
Reported-and-tested-by: Stephen Boyd <bebarino@gmail.com>
|
|
Cc: stable@vger.kernel.org
|
|
Signed-off-by: Stanislaw Gruszka <sgruszka@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@vger.kernel.org
|
|
More majordomo info at http://vger.kernel.org/majordomo-info.html
|