From: Gertjan van Wingerde <gwingerde@gmail.com>
To: Pavel Roskin <proski@gnu.org>,
"John W. Linville" <linville@tuxdriver.com>
Cc: Markus Baier <Markus_Baier@web.de>, linux-wireless@vger.kernel.org
Subject: Re: [BISECTED] [PATCH v2 8/8] rt2x00: Properly request tx headroom for alignment operations.
Date: Tue, 22 Dec 2009 09:13:37 +0100 [thread overview]
Message-ID: <4B307FB1.5040806@gmail.com> (raw)
In-Reply-To: <1261459549.31982.2.camel@ct>
On 12/22/09 06:25, Pavel Roskin wrote:
> Quoting Gertjan van Wingerde <gwingerde@gmail.com>:
>
>>> Perhaps non-zero headroom is not handled correctly?
>>>
>>
>> Hmmm, perhaps the problem is that the headroom is not a multiple of 4.
>> Can you check what happens when you set the extra_tx_headroom fixed
>> to e.g. 20?
>
> I tried 64 and 2, and neither worked. rt2x00dev->ops->extra_tx_headroom
> is 0 for me. When the rt2x00dev->hw->extra_tx_headroom is 2, I observed
> invalid packets being emitted (using another interface). The packets
> have two bytes inserted in the beginning of the frame:
>
> 0000 00 00 1c 00 6f 48 00 00 fc de ee 13 00 00 00 00 ....oH.. ........
> 0010 10 02 85 09 a0 00 b1 b7 00 00 00 00 00 00 40 00 ........ ......@.
> radiotap, 28 bytes ---------------------->
> 2 extra bytes <--->
> correct 802.11 header <----
> 0020 00 00 ff ff ff ff ff ff 00 d0 41 af ad 2c ff ff ........ ..A..,..
> 0030 ff ff cf 02 c0 02 00 05 77 62 65 6e 64 01 08 02 ........ wbend...
> 0040 04 0b 16 0c 12 18 24 32 04 30 48 e7 f8 07 9d ......$2 .0H....
>
> Here's a patch that is working for me, but I would not vouch for its
> correctness. Signing off just in case it happens to be correct ;-)
>
>
> rt2x00: use correct headroom for transmission
>
> Use rt2x00dev->ops->extra_tx_headroom, not
> rt2x00dev->hw->extra_tx_headroom in the tx code, as the later includes
> headroom only meant for the monitor mode.
>
> Signed-off-by: Pavel Roskin <proski@gnu.org>
Doh, that's it. Here we should indeed only take the real extra TX headroom required by
the driver into account. Seems like I goofed up in a preparatory patch that centralized
setting of rt2x00dev->hw->extra_tx_headroom.
Can you confirm that everything works okay with the original code and this patch applied?
In any way:
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
John, with this you can reinstate the original patch as well. Let me know if you want
me to resubmit that one with this one included in it.
> ---
> drivers/net/wireless/rt2x00/rt2x00queue.c | 6 +++---
> 1 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.c b/drivers/net/wireless/rt2x00/rt2x00queue.c
> index 3d8fb68..0b4801a 100644
> --- a/drivers/net/wireless/rt2x00/rt2x00queue.c
> +++ b/drivers/net/wireless/rt2x00/rt2x00queue.c
> @@ -104,7 +104,7 @@ void rt2x00queue_map_txskb(struct rt2x00_dev *rt2x00dev, struct sk_buff *skb)
> * is also mapped to the DMA so it can be used for transfering
> * additional descriptor information to the hardware.
> */
> - skb_push(skb, rt2x00dev->hw->extra_tx_headroom);
> + skb_push(skb, rt2x00dev->ops->extra_tx_headroom);
>
> skbdesc->skb_dma =
> dma_map_single(rt2x00dev->dev, skb->data, skb->len, DMA_TO_DEVICE);
> @@ -112,7 +112,7 @@ void rt2x00queue_map_txskb(struct rt2x00_dev *rt2x00dev, struct sk_buff *skb)
> /*
> * Restore data pointer to original location again.
> */
> - skb_pull(skb, rt2x00dev->hw->extra_tx_headroom);
> + skb_pull(skb, rt2x00dev->ops->extra_tx_headroom);
>
> skbdesc->flags |= SKBDESC_DMA_MAPPED_TX;
> }
> @@ -134,7 +134,7 @@ void rt2x00queue_unmap_skb(struct rt2x00_dev *rt2x00dev, struct sk_buff *skb)
> * by the driver, but it was actually mapped to DMA.
> */
> dma_unmap_single(rt2x00dev->dev, skbdesc->skb_dma,
> - skb->len + rt2x00dev->hw->extra_tx_headroom,
> + skb->len + rt2x00dev->ops->extra_tx_headroom,
> DMA_TO_DEVICE);
> skbdesc->flags &= ~SKBDESC_DMA_MAPPED_TX;
> }
>
next prev parent reply other threads:[~2009-12-22 8:13 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-23 21:44 [PATCH v2 0/8] Assorted fixes and cleanups for rt2x00 and mac80211 Gertjan van Wingerde
2009-11-23 21:44 ` [PATCH v2 1/8] rt2x00: Only initialize HT on rt2800 devices that support it Gertjan van Wingerde
2009-11-23 21:44 ` [PATCH v2 2/8] rt2x00: Remove unused variable frame_control from rt2x00mac_tx Gertjan van Wingerde
2009-11-23 21:44 ` [PATCH v2 3/8] rt2x00: Clean up use of rt2x00_intf_is_pci Gertjan van Wingerde
2009-11-23 21:44 ` [PATCH v2 4/8] rt2x00: Fix typo (lengt --> length) in rt2x00queue.c Gertjan van Wingerde
2009-11-23 21:44 ` [PATCH v2 5/8] rt2x00: Whitespace cleanup Gertjan van Wingerde
2009-11-23 21:44 ` [PATCH v2 6/8] rt2x00: Centralize setting of extra TX headroom requested by rt2x00 Gertjan van Wingerde
2009-11-23 21:44 ` [PATCH v2 7/8] mac80211: Add define for TX headroom reserved by mac80211 itself Gertjan van Wingerde
2009-11-23 21:44 ` [PATCH v2 8/8] rt2x00: Properly request tx headroom for alignment operations Gertjan van Wingerde
2009-11-24 17:19 ` Ivo van Doorn
2009-11-24 19:12 ` Gertjan van Wingerde
2009-11-24 20:04 ` Ivo van Doorn
2009-11-25 19:47 ` John W. Linville
2009-11-25 21:29 ` Gertjan van Wingerde
2009-11-25 21:48 ` John W. Linville
2009-12-20 15:42 ` [BISECTED] " Markus Baier
2009-12-20 20:20 ` Gertjan van Wingerde
2009-12-21 0:45 ` Markus Baier
2009-12-21 6:33 ` Pavel Roskin
2009-12-21 16:26 ` Gertjan van Wingerde
2009-12-21 19:17 ` John W. Linville
2009-12-22 0:22 ` Gertjan van Wingerde
2009-12-22 5:25 ` Pavel Roskin
2009-12-22 8:13 ` Gertjan van Wingerde [this message]
2009-12-22 10:55 ` Markus Baier
2009-12-22 14:18 ` Gertjan van Wingerde
2009-12-22 15:03 ` Pavel Roskin
2009-11-23 23:22 ` [PATCH v2 7/8] mac80211: Add define for TX headroom reserved by mac80211 itself Johannes Berg
2009-11-24 17:13 ` [PATCH v2 6/8] rt2x00: Centralize setting of extra TX headroom requested by rt2x00 Ivo van Doorn
2009-11-24 17:13 ` [PATCH v2 5/8] rt2x00: Whitespace cleanup Ivo van Doorn
2009-11-23 22:18 ` [rt2x00-users] [PATCH v2 1/8] rt2x00: Only initialize HT on rt2800 devices that support it David Ellingsworth
2009-11-24 17:12 ` Ivo van Doorn
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=4B307FB1.5040806@gmail.com \
--to=gwingerde@gmail.com \
--cc=Markus_Baier@web.de \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.com \
--cc=proski@gnu.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.