• Bruno Randolf's avatar
    ath5k: correct padding in tx descriptors · 281c56dd
    Bruno Randolf authored
    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: default avatarBruno Randolf <bruno@thinktube.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    281c56dd
base.c 79.2 KB