|
@@ -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);
|