2012-05-07 15:45:32

by Johannes Berg

[permalink] [raw]
Subject: [PATCH] mac80211: fix single queue drivers

From: Johannes Berg <[email protected]>

My queue management rework broke drivers that don't
have multiple AC queues and register a single queue
only, causing a warning:

WARNING: at net/mac80211/iface.c:162 ieee80211_check_queues

This was due to filling the queues wrongly and then
noticing the error when checking later.

Reported-and-Tested-by: Larry Finger <[email protected]>
Signed-off-by: Johannes Berg <[email protected]>
---
net/mac80211/iface.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

--- a/net/mac80211/iface.c 2012-05-03 21:56:23.000000000 +0200
+++ b/net/mac80211/iface.c 2012-05-07 17:43:21.000000000 +0200
@@ -206,8 +206,10 @@ static void ieee80211_set_default_queues
for (i = 0; i < IEEE80211_NUM_ACS; i++) {
if (local->hw.flags & IEEE80211_HW_QUEUE_CONTROL)
sdata->vif.hw_queue[i] = IEEE80211_INVAL_HW_QUEUE;
- else
+ else if (local->hw.queues >= IEEE80211_NUM_ACS)
sdata->vif.hw_queue[i] = i;
+ else
+ sdata->vif.hw_queue[i] = 0;
}
sdata->vif.cab_queue = IEEE80211_INVAL_HW_QUEUE;
}




2012-05-14 18:02:49

by John W. Linville

[permalink] [raw]
Subject: Re: [PATCH] mac80211: fix single queue drivers

On Sat, May 12, 2012 at 11:38:16PM -0500, Larry Finger wrote:
> On 05/07/2012 10:45 AM, Johannes Berg wrote:
> >From: Johannes Berg<[email protected]>
> >
> >My queue management rework broke drivers that don't
> >have multiple AC queues and register a single queue
> >only, causing a warning:
> >
> >WARNING: at net/mac80211/iface.c:162 ieee80211_check_queues
> >
> >This was due to filling the queues wrongly and then
> >noticing the error when checking later.
> >
> >Reported-and-Tested-by: Larry Finger<[email protected]>
> >Signed-off-by: Johannes Berg<[email protected]>
>
> John,
>
> I know you have been busy and that Linus is restricting the patches
> to be added after 3.4-rc7; however, this one really needs to get
> into 3.4. If it does not make it, every wireless device with only
> one hardware queue will break.
>
> Larry

Actually, it doesn't seem to apply in 3.4. The original commit that
causes the problem (3a25a8c8) seems to only exist in wireless-next.

Is there some other version of this patch to apply for 3.4?

John
--
John W. Linville Someday the world will need a hero, and you
[email protected] might be all we have. Be ready.

2012-05-13 04:38:20

by Larry Finger

[permalink] [raw]
Subject: Re: [PATCH] mac80211: fix single queue drivers

On 05/07/2012 10:45 AM, Johannes Berg wrote:
> From: Johannes Berg<[email protected]>
>
> My queue management rework broke drivers that don't
> have multiple AC queues and register a single queue
> only, causing a warning:
>
> WARNING: at net/mac80211/iface.c:162 ieee80211_check_queues
>
> This was due to filling the queues wrongly and then
> noticing the error when checking later.
>
> Reported-and-Tested-by: Larry Finger<[email protected]>
> Signed-off-by: Johannes Berg<[email protected]>

John,

I know you have been busy and that Linus is restricting the patches to be added
after 3.4-rc7; however, this one really needs to get into 3.4. If it does not
make it, every wireless device with only one hardware queue will break.

Larry



2012-05-14 19:11:11

by Larry Finger

[permalink] [raw]
Subject: Re: [PATCH] mac80211: fix single queue drivers

On 05/14/2012 12:56 PM, John W. Linville wrote:
> On Sat, May 12, 2012 at 11:38:16PM -0500, Larry Finger wrote:
>> On 05/07/2012 10:45 AM, Johannes Berg wrote:
>>> From: Johannes Berg<[email protected]>
>>>
>>> My queue management rework broke drivers that don't
>>> have multiple AC queues and register a single queue
>>> only, causing a warning:
>>>
>>> WARNING: at net/mac80211/iface.c:162 ieee80211_check_queues
>>>
>>> This was due to filling the queues wrongly and then
>>> noticing the error when checking later.
>>>
>>> Reported-and-Tested-by: Larry Finger<[email protected]>
>>> Signed-off-by: Johannes Berg<[email protected]>
>>
>> John,
>>
>> I know you have been busy and that Linus is restricting the patches
>> to be added after 3.4-rc7; however, this one really needs to get
>> into 3.4. If it does not make it, every wireless device with only
>> one hardware queue will break.
>>
>> Larry
>
> Actually, it doesn't seem to apply in 3.4. The original commit that
> causes the problem (3a25a8c8) seems to only exist in wireless-next.
>
> Is there some other version of this patch to apply for 3.4?

I got confused about that one. Sorry for the noise.

The one that does need to be in 3.4 is "[PATCH] rtlwifi: fix for race condition
when firmware is cached". The original commit (b0302ab) is in mainline, but this
fix is not.

Larry