summaryrefslogtreecommitdiffstats
path: root/net/mac80211/rx.c
diff options
context:
space:
mode:
authorZhu Yi2009-10-28 21:13:52 +0100
committerJohn W. Linville2009-10-30 21:50:38 +0100
commit8ce0b5892460c670b71b7a0bf96549f5e7a63d6c (patch)
tree28227099d2113da0f2f4b26969f601261a0b7c99 /net/mac80211/rx.c
parentath9k_hw: make ath9k_phy_modify_rx_buffer() static (diff)
downloadkernel-qcow2-linux-8ce0b5892460c670b71b7a0bf96549f5e7a63d6c.tar.gz
kernel-qcow2-linux-8ce0b5892460c670b71b7a0bf96549f5e7a63d6c.tar.xz
kernel-qcow2-linux-8ce0b5892460c670b71b7a0bf96549f5e7a63d6c.zip
mac80211: make align adjustment code support paged SKB
This fixed a BUG_ON in __skb_trim() when paged rx is used in iwlwifi driver. Yes, the whole mac80211 stack doesn't support paged SKB yet. But let's start the work slowly from small code snippets. Reported-and-tested-by: Abhijeet Kolekar <abhijeet.kolekar@intel.com> Signed-off-by: Zhu Yi <yi.zhu@intel.com> Signed-off-by: Reinette Chatre <reinette.chatre@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/rx.c')
-rw-r--r--net/mac80211/rx.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 798fa82b6ae3..c832d408187e 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -1326,10 +1326,10 @@ ieee80211_deliver_skb(struct ieee80211_rx_data *rx)
skb = NULL;
} else {
u8 *data = skb->data;
- size_t len = skb->len;
- u8 *new = __skb_push(skb, align);
- memmove(new, data, len);
- __skb_trim(skb, len);
+ size_t len = skb_headlen(skb);
+ skb->data -= align;
+ memmove(skb->data, data, len);
+ skb_set_tail_pointer(skb, len);
}
}
#endif