aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGertjan van Wingerde2009-12-04 23:47:04 +0100
committerJohn W. Linville2009-12-21 18:56:36 -0500
commitb734083349d1f1aab1edc810cef02e8046251b48 (patch)
tree8e3c5d9f38693806f625b32c9c0be510f5929d78
parent2e331462fcb3d897921d8a0af4fca1b08c1b7269 (diff)
rt2x00: Only remove L2 padding in received frames if there is payload.
L2 padding will only be present when there is actual payload present. Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com> Acked-by: Ivo van Doorn <ivdoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00dev.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c
index cc6bcc5a20c7..d7711e4d4751 100644
--- a/drivers/net/wireless/rt2x00/rt2x00dev.c
+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
@@ -401,7 +401,9 @@ void rt2x00lib_rxdone(struct rt2x00_dev *rt2x00dev,
(rxdesc.flags & RX_FLAG_IV_STRIPPED))
rt2x00crypto_rx_insert_iv(entry->skb, header_length,
&rxdesc);
- else if (rxdesc.dev_flags & RXDONE_L2PAD)
+ else if (header_length &&
+ (rxdesc.size > header_length) &&
+ (rxdesc.dev_flags & RXDONE_L2PAD))
rt2x00queue_remove_l2pad(entry->skb, header_length);
else
rt2x00queue_align_payload(entry->skb, header_length);