On Sun, Nov 29, 2009 at 12:47 PM, Gertjan van Wingerde <gwingerde@xxxxxxxxx> wrote: > Fix a couple of more bugs in the L2 padding code: > 1. Compute the amount of L2 padding correctly (in 3 places). > 2. Trim the skb correctly when the L2 padding has been applied. > > Signed-off-by: Gertjan van Wingerde <gwingerde@xxxxxxxxx> > --- > > v2: > - Fix bug detect by Benoit Papillault. > > --- > drivers/net/wireless/rt2x00/rt2x00queue.c | 7 ++++--- > 1 files changed, 4 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.c b/drivers/net/wireless/rt2x00/rt2x00queue.c > index b8f0954..9082fad 100644 > --- a/drivers/net/wireless/rt2x00/rt2x00queue.c > +++ b/drivers/net/wireless/rt2x00/rt2x00queue.c > @@ -181,7 +181,7 @@ void rt2x00queue_insert_l2pad(struct sk_buff *skb, unsigned int header_length) > unsigned int frame_length = skb->len; > unsigned int header_align = ALIGN_SIZE(skb, 0); > unsigned int payload_align = ALIGN_SIZE(skb, header_length); > - unsigned int l2pad = 4 - (payload_align - header_align); > + unsigned int l2pad = (4 - (header_length & 3)) & 3; We already have this calculation on multiple locations, so perhaps it is better to have a L2PAD_SIZE macro in rt2x00.h (where ALIGN_SIZE() is also defined). Ivo -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html