From: Helmut Schaa <helmut.schaa@googlemail.com>
To: Ivo van Doorn <ivdoorn@gmail.com>
Cc: "John W. Linville" <linville@tuxdriver.com>,
linux-wireless@vger.kernel.org, users@rt2x00.serialmonkey.com,
"RA-Jay Hung" <jay_hung@ralinktech.com>
Subject: Re: [PATCH 9/9] rt2x00: Modify rt2x00queue_remove_l2pad to make skb->data two-byte alignment
Date: Tue, 16 Nov 2010 16:45:14 +0100 [thread overview]
Message-ID: <201011161645.15018.helmut.schaa@googlemail.com> (raw)
In-Reply-To: <201011131913.55169.IvDoorn@gmail.com>
Am Samstag 13 November 2010 schrieb Ivo van Doorn:
> From: RA-Jay Hung <Jay_Hung@ralinktech.com>
>
> When send out skb data to mac80211, orignal code will cause mac80211
> unaligned access, so modify code to make mac80211 can natural access.
And this introduces the same panic again :(
The problem is the following:
We don't pass the skb in the same state back to mac80211 as we got it.
When inserting the l2pad we're moving the header and thus reduce headroom.
This patch modifies the bahavior during l2pad removal to not move the header
back into its old position but instead moves the payload. Thus the skb keeps
the reduced headroom. If this skb gets requeued into rt2x00 (which can happen
when the frame wasn't acked and the according STA is known to e in powersave
mode) the header and payload get aligned again further reducing headroom which
results in a too small headroom for the TXWI and thus a skb_under_panic.
Helmut
> Signed-off-by: RA-Jay Hung <jay_hung@ralinktech.com>
> Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
> ---
> drivers/net/wireless/rt2x00/rt2x00queue.c | 6 ++++--
> 1 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.c b/drivers/net/wireless/rt2x00/rt2x00queue.c
> index dc54317..a3d79c7 100644
> --- a/drivers/net/wireless/rt2x00/rt2x00queue.c
> +++ b/drivers/net/wireless/rt2x00/rt2x00queue.c
> @@ -204,8 +204,10 @@ void rt2x00queue_remove_l2pad(struct sk_buff *skb, unsigned int header_length)
> if (!l2pad)
> return;
>
> - memmove(skb->data + l2pad, skb->data, header_length);
> - skb_pull(skb, l2pad);
> + memmove(skb->data + header_length, skb->data + header_length + l2pad,
> + skb->len - header_length - l2pad);
> +
> + skb_trim(skb, skb->len - l2pad);
> }
>
> static void rt2x00queue_create_tx_descriptor_seq(struct queue_entry *entry,
>
next prev parent reply other threads:[~2010-11-16 15:46 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-13 18:08 [PATCH 1/9] rt2x00: Increase REGISTER_BUSY_COUNT Ivo van Doorn
2010-11-13 18:09 ` [PATCH 2/9] rt2x00: Add initial support for RT3370/RT3390 devices Ivo van Doorn
2010-11-13 18:10 ` [PATCH 3/9] rt2x00: Clean up Kconfig for RT2800 devices Ivo van Doorn
2010-11-13 18:10 ` [PATCH 4/9] rt2x00: Remove RT30XX Kconfig variables Ivo van Doorn
2010-11-13 18:10 ` [PATCH 5/9] rt2x00: Remove unneccessary internal Kconfig symbols Ivo van Doorn
2010-11-13 18:11 ` [PATCH 6/9] rt2x00: Use ioremap for SoC devices instead of KSEG1ADDR Ivo van Doorn
2010-11-13 18:11 ` [PATCH 7/9] rt2x00: Fix rt2800 USB TX Path DMA issue Ivo van Doorn
2010-11-13 18:12 ` [PATCH 8/9] rt2x00: Fix header_length in rt2x00lib_txdone Ivo van Doorn
2010-11-13 18:13 ` [PATCH 9/9] rt2x00: Modify rt2x00queue_remove_l2pad to make skb->data two-byte alignment Ivo van Doorn
2010-11-16 15:45 ` Helmut Schaa [this message]
2010-11-17 8:46 ` Helmut Schaa
2010-11-17 10:16 ` RA-Jay Hung
2010-11-17 10:48 ` Helmut Schaa
2010-11-17 15:07 ` John W. Linville
2010-11-17 15:34 ` Gertjan van Wingerde
2010-11-17 16:41 ` Helmut Schaa
2010-11-18 1:47 ` [rt2x00-users] " David Ellingsworth
2010-11-22 7:00 ` Gertjan van Wingerde
2010-11-22 8:14 ` RA-Jay Hung
2010-11-22 10:05 ` Gertjan van Wingerde
2010-11-22 10:22 ` Helmut Schaa
2010-11-16 15:36 ` [PATCH 8/9] rt2x00: Fix header_length in rt2x00lib_txdone Helmut Schaa
2010-11-15 9:45 ` [PATCH 7/9] rt2x00: Fix rt2800 USB TX Path DMA issue Walter Goldens
2010-11-16 1:59 ` RA-Jay Hung
2010-11-16 15:59 ` Johannes Stezenbach
2010-11-16 16:11 ` Helmut Schaa
2010-11-16 16:34 ` Johannes Stezenbach
2010-11-16 16:42 ` Helmut Schaa
2010-11-16 16:53 ` Johannes Stezenbach
2010-11-16 17:00 ` Helmut Schaa
[not found] ` <AANLkTi=ANfE3s8RUmS5=qyofqHM2geRnatK-eCUjovEc@mail.gmail.com>
2010-11-16 19:06 ` Johannes Stezenbach
2010-11-16 19:23 ` Ivo Van Doorn
2010-11-16 19:26 ` Johannes Berg
2010-11-16 19:33 ` Ivo Van Doorn
2010-11-14 8:59 ` [PATCH 3/9] rt2x00: Clean up Kconfig for RT2800 devices Julian Calaby
2010-11-14 9:00 ` Julian Calaby
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=201011161645.15018.helmut.schaa@googlemail.com \
--to=helmut.schaa@googlemail.com \
--cc=ivdoorn@gmail.com \
--cc=jay_hung@ralinktech.com \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.com \
--cc=users@rt2x00.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;
as well as URLs for NNTP newsgroup(s).