On Tue, Oct 16, 2012 at 2:34 PM, Stanislaw Gruszka <sgruszka@xxxxxxxxxx> wrote: > 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@xxxxxxxxxxxxxx> > Reported-and-tested-by: Stephen Boyd <bebarino@xxxxxxxxx> > Cc: stable@xxxxxxxxxxxxxxx > Signed-off-by: Stanislaw Gruszka <sgruszka@xxxxxxxxxx> Acked-by: Gertjan van Wingerde <gwingerde@xxxxxxxxx> > --- > 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@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- --- Gertjan -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html