rt2x00: Reorganize padding & L2 padding
authorIvo van Doorn <ivdoorn@gmail.com>
Sat, 29 Aug 2009 18:30:45 +0000 (20:30 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 31 Aug 2009 18:42:14 +0000 (14:42 -0400)
commitdaee6c092aa49ea090612738253ef0d11d120344
tree97ab49a8a465b2e0fa470a6e9c5f0264e5db94d3
parent2e27cff871dec9371e41022aaaebb3452ec069c0
rt2x00: Reorganize padding & L2 padding

The old function rt2x00queue_payload_align() handled
both adding and removing L2 padding and some basic
frame alignment. The entire function was being abused
because it had multiple functions and the header length
argument was somtimes used to align the header instead
of the payload.

Additionally there was a bug when inserting L2 padding
that only the payload was aligned but not the header. This
happens when the header wasn't aligned properly by mac80211,
but rt2x00lib only moves the payload.

A secondary problem was that when removing L2 padding during
TXdone or RX the skb wasn't resized to the proper size.

Split the function into seperate functions each handling
its task as it should.

Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/rt2x00/rt2x00crypto.c
drivers/net/wireless/rt2x00/rt2x00dev.c
drivers/net/wireless/rt2x00/rt2x00lib.h
drivers/net/wireless/rt2x00/rt2x00queue.c