* [PATCH/RFC] mac80211: wake queues if ieee80211_suspend failed
@ 2012-04-23 14:57 Vitaly Wool
2012-04-23 15:30 ` Eliad Peller
0 siblings, 1 reply; 4+ messages in thread
From: Vitaly Wool @ 2012-04-23 14:57 UTC (permalink / raw)
To: linux-wireless
Hi,
Sometimes I'm seeing that after a rejected suspend which was
rejected by the driver's suspend routine, the device can not
associate to any AP any more. Investigation shows that it's
due to the fact that the queues are left stopped with the
reason IEEE80211_QUEUE_STOP_REASON_SUSPEND.
With that known, it looks like we need to wake queues on an
unsuccessful suspend attempt explicitly.
---
net/mac80211/pm.c | 2 ++
1 file changed, 2 insertions(+), 0 deletions(-)
diff --git a/net/mac80211/pm.c b/net/mac80211/pm.c
index 844cefb..fd57913 100644
--- a/net/mac80211/pm.c
+++ b/net/mac80211/pm.c
@@ -96,6 +96,8 @@ int __ieee80211_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan)
int err = drv_suspend(local, wowlan);
if (err) {
local->quiescing = false;
+ ieee80211_wake_queues_by_reason(hw,
+ IEEE80211_QUEUE_STOP_REASON_SUSPEND);
return err;
}
list_for_each_entry(sdata,&local->interfaces, list) {
--
1.7.5.4
--
Vitaly Wool<vitalywool@gmail.com>
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH/RFC] mac80211: wake queues if ieee80211_suspend failed
2012-04-23 14:57 [PATCH/RFC] mac80211: wake queues if ieee80211_suspend failed Vitaly Wool
@ 2012-04-23 15:30 ` Eliad Peller
2012-05-02 19:29 ` Vitaly Wool
0 siblings, 1 reply; 4+ messages in thread
From: Eliad Peller @ 2012-04-23 15:30 UTC (permalink / raw)
To: Vitaly Wool; +Cc: linux-wireless
hi Vitaly,
On Mon, Apr 23, 2012 at 5:57 PM, Vitaly Wool <vitalywool@gmail.com> wrote:
> Sometimes I'm seeing that after a rejected suspend which was
> rejected by the driver's suspend routine, the device can not
> associate to any AP any more. Investigation shows that it's
> due to the fact that the queues are left stopped with the
> reason IEEE80211_QUEUE_STOP_REASON_SUSPEND.
>
> With that known, it looks like we need to wake queues on an
> unsuccessful suspend attempt explicitly.
>
> ---
> net/mac80211/pm.c | 2 ++
> 1 file changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/net/mac80211/pm.c b/net/mac80211/pm.c
> index 844cefb..fd57913 100644
> --- a/net/mac80211/pm.c
> +++ b/net/mac80211/pm.c
> @@ -96,6 +96,8 @@ int __ieee80211_suspend(struct ieee80211_hw *hw, struct
> cfg80211_wowlan *wowlan)
> int err = drv_suspend(local, wowlan);
> if (err) {
> local->quiescing = false;
> + ieee80211_wake_queues_by_reason(hw,
> +
> IEEE80211_QUEUE_STOP_REASON_SUSPEND);
> return err;
> }
it seems right.
looks like there's a similar issue with WLAN_STA_BLOCK_BA being set
for all the stations and not cleared on error.
Eliad.
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH/RFC] mac80211: wake queues if ieee80211_suspend failed
2012-04-23 15:30 ` Eliad Peller
@ 2012-05-02 19:29 ` Vitaly Wool
2012-05-03 19:34 ` Johannes Berg
0 siblings, 1 reply; 4+ messages in thread
From: Vitaly Wool @ 2012-05-02 19:29 UTC (permalink / raw)
To: Eliad Peller, Johannes Berg; +Cc: linux-wireless
Hi Eliad,
On Mon, Apr 23, 2012 at 5:30 PM, Eliad Peller <eliad@wizery.com> wrote:
> hi Vitaly,
>
> On Mon, Apr 23, 2012 at 5:57 PM, Vitaly Wool <vitalywool@gmail.com> wrote:
>> Sometimes I'm seeing that after a rejected suspend which was
>> rejected by the driver's suspend routine, the device can not
>> associate to any AP any more. Investigation shows that it's
>> due to the fact that the queues are left stopped with the
>> reason IEEE80211_QUEUE_STOP_REASON_SUSPEND.
>>
>> With that known, it looks like we need to wake queues on an
>> unsuccessful suspend attempt explicitly.
>>
>> ---
>> net/mac80211/pm.c | 2 ++
>> 1 file changed, 2 insertions(+), 0 deletions(-)
>>
>> diff --git a/net/mac80211/pm.c b/net/mac80211/pm.c
>> index 844cefb..fd57913 100644
>> --- a/net/mac80211/pm.c
>> +++ b/net/mac80211/pm.c
>> @@ -96,6 +96,8 @@ int __ieee80211_suspend(struct ieee80211_hw *hw, struct
>> cfg80211_wowlan *wowlan)
>> int err = drv_suspend(local, wowlan);
>> if (err) {
>> local->quiescing = false;
>> + ieee80211_wake_queues_by_reason(hw,
>> +
>> IEEE80211_QUEUE_STOP_REASON_SUSPEND);
>> return err;
>> }
>
> it seems right.
> looks like there's a similar issue with WLAN_STA_BLOCK_BA being set
> for all the stations and not cleared on error..
thanks for the feedback. Johannes, any objections/additions? Should I
resubmit the patch?
Thanks,
Vitaly
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH/RFC] mac80211: wake queues if ieee80211_suspend failed
2012-05-02 19:29 ` Vitaly Wool
@ 2012-05-03 19:34 ` Johannes Berg
0 siblings, 0 replies; 4+ messages in thread
From: Johannes Berg @ 2012-05-03 19:34 UTC (permalink / raw)
To: Vitaly Wool; +Cc: Eliad Peller, linux-wireless
On Wed, 2012-05-02 at 21:29 +0200, Vitaly Wool wrote:
> Hi Eliad,
>
> On Mon, Apr 23, 2012 at 5:30 PM, Eliad Peller <eliad@wizery.com> wrote:
> > hi Vitaly,
> >
> > On Mon, Apr 23, 2012 at 5:57 PM, Vitaly Wool <vitalywool@gmail.com> wrote:
> >> Sometimes I'm seeing that after a rejected suspend which was
> >> rejected by the driver's suspend routine, the device can not
> >> associate to any AP any more. Investigation shows that it's
> >> due to the fact that the queues are left stopped with the
> >> reason IEEE80211_QUEUE_STOP_REASON_SUSPEND.
> >>
> >> With that known, it looks like we need to wake queues on an
> >> unsuccessful suspend attempt explicitly.
> >>
> >> ---
> >> net/mac80211/pm.c | 2 ++
> >> 1 file changed, 2 insertions(+), 0 deletions(-)
> >>
> >> diff --git a/net/mac80211/pm.c b/net/mac80211/pm.c
> >> index 844cefb..fd57913 100644
> >> --- a/net/mac80211/pm.c
> >> +++ b/net/mac80211/pm.c
> >> @@ -96,6 +96,8 @@ int __ieee80211_suspend(struct ieee80211_hw *hw, struct
> >> cfg80211_wowlan *wowlan)
> >> int err = drv_suspend(local, wowlan);
> >> if (err) {
> >> local->quiescing = false;
> >> + ieee80211_wake_queues_by_reason(hw,
> >> +
> >> IEEE80211_QUEUE_STOP_REASON_SUSPEND);
> >> return err;
> >> }
> >
> > it seems right.
> > looks like there's a similar issue with WLAN_STA_BLOCK_BA being set
> > for all the stations and not cleared on error..
>
> thanks for the feedback. Johannes, any objections/additions? Should I
> resubmit the patch?
No, no objections -- as for resubmitting I don't know, I've been on
vacation (and really still am until Monday)
johannes
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2012-05-03 19:34 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-04-23 14:57 [PATCH/RFC] mac80211: wake queues if ieee80211_suspend failed Vitaly Wool
2012-04-23 15:30 ` Eliad Peller
2012-05-02 19:29 ` Vitaly Wool
2012-05-03 19:34 ` Johannes Berg
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).