]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit97b38030159422643543eeb81bf94824a161b414
treeeead674f8740656d386465cc9dcef7feb867f9ff
parentaa17dd06f56407e99b8085df0b85d2a5584354a6
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