aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/sbus
diff options
context:
space:
mode:
authorLennert Buytenhek <buytenh@wantstofly.org>2009-11-30 18:12:08 +0100
committerJohn W. Linville <linville@tuxdriver.com>2009-12-07 16:51:19 -0500
commit20f09c3df7a8a623c290f62596c1a6b0da088030 (patch)
treea65343d091be0ee4ba65f41bdb1fe99e4b5e0381 /drivers/sbus
parentmwl8k: fix UPDATE_STADB command struct legacy_rates array length (diff)
downloadlinux-dev-20f09c3df7a8a623c290f62596c1a6b0da088030.tar.xz
linux-dev-20f09c3df7a8a623c290f62596c1a6b0da088030.zip
mwl8k: prevent corruption of QoS field on receive
Packets exchanged between the mwl8k driver and the firmware always have a 4-address header without QoS field. For QoS packets, the QoS field is passed to/from the firmware via the tx/rx descriptors. We were handling this correctly on transmit, but not on receive -- if a QoS packet was received, we would leave garbage in the QoS field in the packet passed up to the stack, which is Bad(tm). Also, if the packet received on the air was a 4-address without QoS packet, we would forget to skb_pull the 2-byte DMA length prefix off. This patch adds an argument to the ->rxd_process() receive descriptor operation to retrieve the QoS field from the receive descriptor, and extends mwl8k_remove_dma_header() to insert this field back into the packet if the packet received is a QoS packet. It also fixes mwl8k_remove_dma_header() to strip off the length prefix in all cases. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/sbus')
0 files changed, 0 insertions, 0 deletions