ath5k: correct padding in tx descriptors
authorBruno Randolf <bruno@thinktube.com>
Tue, 5 Feb 2008 09:44:55 +0000 (18:44 +0900)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 15 Feb 2008 18:44:17 +0000 (13:44 -0500)
commit281c56dd276e587a7b4a65764ac68ae250e73235
treeeead674f8740656d386465cc9dcef7feb867f9ff
parentbd196ec7f03fff6935f66a9a3cf27accd34a75b9
ath5k: correct padding in tx descriptors

when setting up the tx descriptors for the hardware we must account for any
padding between the header and the data we might have added previously. frame
len is the length of the frame in the air (including FCS but no padding) and
buffer len is the length of the buffer (including padding, but without FCS).

changing the way ah_setup_tx_desc is called: now excluding the FCS, since it's
easier to add that in the function where we need it.

before this fix we sent trailing zero bytes after the packet (because frame len
included the padding) which was not a big problem without WEP, but with WEP
this resultes in a wrong WEP checksum and the packet is discarded - which is
how i noticed at all ;)

an easy way to run into header padding problems, btw, is to connect to a QoS
(WME) enabled access point (eg. madwifi) - QoS data frames are 2 byte longer
and will require padding.

this patch applies on top of luis latest patch series from 04.02.2008.

drivers/net/wireless/ath5k/base.c:      Changes-licensed-under: 3-Clause-BSD
drivers/net/wireless/ath5k/hw.c:        Changes-licensed-under: ISC

Signed-off-by: Bruno Randolf <bruno@thinktube.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath5k/base.c
drivers/net/wireless/ath5k/hw.c