mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: David Ellingsworth <david@identd.dyndns.org>
To: Gertjan van Wingerde <gertjan@vanwingerde.net>
Cc: Johannes Berg <johannes@sipsolutions.net>,
	rt2x00 Users List <users@host1.serialmonkey.com>,
	LKML <linux-kernel@vger.kernel.org>,
	wireless <linux-wireless@vger.kernel.org>
Subject: Re: [rt2x00-users] ieee80211_tx_status: headroom too small
Date: Sun, 22 Nov 2009 16:17:43 -0500	[thread overview]
Message-ID: <30353c3d0911221317q4eb4d580r1551403e07657045@mail.gmail.com> (raw)
In-Reply-To: <4B099624.4010106@vanwingerde.net>

On Sun, Nov 22, 2009 at 2:51 PM, Gertjan van Wingerde
<gertjan@vanwingerde.net> wrote:
> On 11/22/09 19:48, Gertjan van Wingerde wrote:
>> On 11/22/09 18:59, David Ellingsworth wrote:
>>> On Sun, Nov 22, 2009 at 7:47 AM, Gertjan van Wingerde
>>> <gwingerde@gmail.com> wrote:
>>>> On 11/22/09 08:09, David Ellingsworth wrote:
>>>>> On Sat, Nov 21, 2009 at 10:27 AM, Gertjan van Wingerde
>>>>> <gwingerde@gmail.com> wrote:
>>>>>> On 11/21/09 02:30, David Ellingsworth wrote:
>>>>>>> Wasn't sure where to send this, but with the latest 2.6.32-rc8-wl
>>>>>>> kernel built from the wireless-testing repository I'm getting a number
>>>>>>> of "ieee80211_tx_status: headroom too small" errors in my syslog. I'm
>>>>>>> using the rt61pci driver in conjunction with hostap as a wpa2 secured
>>>>>>> access point. The relevant information about my card from lspci is:
>>>>>>>
>>>>>>> 01:08.0 0280: 1814:0301
>>>>>>>         Subsystem: 1458:e934
>>>>>>>         Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop-
>>>>>>> ParErr- Stepping- SERR+ FastB2B- DisINTx-
>>>>>>>         Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=slow >TAbort-
>>>>>>> <TAbort- <MAbort- >SERR- <PERR- INTx-
>>>>>>>         Latency: 64, Cache Line Size: 128 bytes
>>>>>>>         Interrupt: pin A routed to IRQ 18
>>>>>>>         Region 0: Memory at fe6f0000 (32-bit, non-prefetchable) [size=32K]
>>>>>>>         Capabilities: [40] Power Management version 2
>>>>>>>                 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
>>>>>>> PME(D0-,D1-,D2-,D3hot-,D3cold-)
>>>>>>>                 Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>>>>>>>         Kernel driver in use: rt61pci
>>>>>>>
>>>>>>> If you need any other information, I'll be happy to provide it.
>>>>>>>
>>>>>>
>>>>>> Hi David,
>>>>>>
>>>>>> This seems to be caused by the rt2x00 driver not properly declaring its alignment
>>>>>> maneuvring space properly, and thus it doesn't leave enough headroom left for
>>>>>> copying to the monitor interface.
>>>>>>
>>>>>> Can you check whether the attached patch fixes the issue for you?
>>>>>> Note: patch looks a bit bigger than it actually is due to indenting cleanups.
>>>>>>
>>>>>
>>>>> Gertjan,
>>>>>
>>>>> I haven't really been able to test this. The kernel version I was
>>>>> using at the time was 2.6.32-rc7-wl and not 2.6.32-rc8-wl. I'm rather
>>>>> certain the patch will resolve the issue, but I've been unable to get
>>>>> my wireless card to function properly with the latest 2.6.32-rc8-wl
>>>>> master branch. I'm not entirely sure what changed since two days ago,
>>>>> but I know the following:
>>>>>
>>>>> 1. 2.6.32-rc8 from Linus' master branch works fine but still exhibits
>>>>> this issue. However, this patch will not apply on top of 2.6.32-rc8.
>>>>>
>>>>> 2. 2.6.32-rc7-wl(11/19/2009) worked fine with the exception of the
>>>>> above mentioned error. Unable to test patch since I pulled all the
>>>>> recent modifications down.
>>>>> 3. 2.6.32-rc8-wl does not work at all for me, but patch does apply.
>>>>>
>>>>> I'm not entirely sure what the differences are between Linus' master
>>>>> branch of 2.6.32-rc8 and the current 2.6.32-rc8-wl tree are or what
>>>>> changes have been made on the wireless-testing master branch in the
>>>>> last couple of days that are preventing me from fully testing this
>>>>> patch.
>>>>>
>>>>> With the current wireless-testing master branch, 2.6.32-rc8-wl, with
>>>>> and without the patch I can associate and authenticate with my AP but
>>>>> am unable to do anything else. Any attempt to establish a wireless
>>>>> connection thus dies while trying to obtain an ip address via DHCP.
>>>>> Sadly, no errors are logged indicating what the cause of this problem
>>>>> might be. Given that I've only seen these errors after establishing a
>>>>> wireless connection, it's a little difficult for me to test without
>>>>> being able to transmit any data.
>>>>>
>>>>> I don't know if it's worth the effort or not, but if this patch were
>>>>> re-based against Linus' master branch I might be able to test it since
>>>>> my AP at least works with 2.6.32-rc8.
>>>>
>>>> David,
>>>>
>>>> OK. Find attached the patch ported to Linus' tree. It should apply to
>>>> any version of Linus' tree after 2.6.32-rc8.
>>>> I think it is good to get real confirmation that the patch behaves
>>>> as expected.
>>>>
>>>> ---
>>>> Gertjan.
>>>>
>>>
>>> Gertjan,
>>>
>>> The patch applies but doesn't quite fix the issue with the rt61pci
>>> driver. With the patch applied, I still occasionally receive the error
>>> message. I added a printk after the error to see how much was missing.
>>> It indicates that skb_headroom is 12 and sizeof(*rthdr) is 13 when it
>>> fails.
>>>
>>
>> David,
>>
>> That is unexpected. This more starts to look like a problem that is
>> outside of rt2x00.
>>
>> Would you be able to see what the available skb_headroom is when the TX
>> frame enters the rt61pci driver, i.e. when the rt2x00mac_tx function is
>> entered?
>>
>
> (cc-ing Johannes, as this seems to be pointing towards mac80211 as well)
>
> David,
>
> I think I got figured out why the patch I sent didn't work. It seems mac80211
> doesn't reserve headroom for both the driver requested space and the special
> monitor interface header at the same time, but just for the maximum of the two.
> This seems to be because it assumes that they are not needed at the same time.
> However, this is not true for rt2x00, as it uses the headroom to align the frame
> and never reclaims the used headroom (as the whole frame was moved forward in the
> skb).
>
> The easy fix here is to let mac80211 reserve headroom for both numbers, instead of
> just the maximum.
>
> Find the patch to achieve that attached.
>
> I think that with both the rt2x00 patch and this patch applied the problem should
> be gone.
>
> ---
> Gertjan.
>

Gertjan,

>From what I can tell, the combination of both of these patches seems
to correct the issue. I have not experienced the error after applying
the patch to mac80211. Thanks for the help.

Regards,

David Ellingsworth

      reply	other threads:[~2009-11-22 21:17 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-21  1:30 David Ellingsworth
2009-11-21 15:27 ` [rt2x00-users] " Gertjan van Wingerde
2009-11-22  7:09   ` David Ellingsworth
2009-11-22 12:47     ` Gertjan van Wingerde
2009-11-22 17:59       ` David Ellingsworth
2009-11-22 18:48         ` Gertjan van Wingerde
2009-11-22 19:51           ` Gertjan van Wingerde
2009-11-22 21:17             ` David Ellingsworth [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=30353c3d0911221317q4eb4d580r1551403e07657045@mail.gmail.com \
    --to=david@identd.dyndns.org \
    --cc=gertjan@vanwingerde.net \
    --cc=johannes@sipsolutions.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=users@host1.serialmonkey.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®