aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/rx.c
diff options
context:
space:
mode:
authormatthieu castet <castet.matthieu@free.fr>2009-06-04 16:16:18 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-06-10 13:27:53 -0400
commitdacb6f1d8fa5200efc4e609fe63a750b960993b6 (patch)
treeaa6be0dbf67ec8b439655441d3bcdae2eb13b320 /net/mac80211/rx.c
parentb52a033c2c501a8015df3727a4bd73389ccb1641 (diff)
mac80211 : fix unaligned rx skb
mac80211 is checking is the skb is aligned on 32 bit boundary. But it is checking against ethernet header, whereas Linux expect IP header aligned. And ethernet ether size is 6*2+2=14, so aligning ethernet header make IP header unaligned. Signed-off-by: Matthieu CASTET <castet.matthieu@free.fr> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/rx.c')
-rw-r--r--net/mac80211/rx.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 6a9b8e63a6bf..754125185109 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -1335,7 +1335,7 @@ ieee80211_deliver_skb(struct ieee80211_rx_data *rx)
1335 * mac80211. That also explains the __skb_push() 1335 * mac80211. That also explains the __skb_push()
1336 * below. 1336 * below.
1337 */ 1337 */
1338 align = (unsigned long)skb->data & 3; 1338 align = ((unsigned long)(skb->data + sizeof(struct ethhdr))) & 3;
1339 if (align) { 1339 if (align) {
1340 if (WARN_ON(skb_headroom(skb) < 3)) { 1340 if (WARN_ON(skb_headroom(skb) < 3)) {
1341 dev_kfree_skb(skb); 1341 dev_kfree_skb(skb);