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>
This commit is contained in:
parent
ddcd4c0818
commit
8ce0b58924
|
@ -1326,10 +1326,10 @@ ieee80211_deliver_skb(struct ieee80211_rx_data *rx)
|
||||||
skb = NULL;
|
skb = NULL;
|
||||||
} else {
|
} else {
|
||||||
u8 *data = skb->data;
|
u8 *data = skb->data;
|
||||||
size_t len = skb->len;
|
size_t len = skb_headlen(skb);
|
||||||
u8 *new = __skb_push(skb, align);
|
skb->data -= align;
|
||||||
memmove(new, data, len);
|
memmove(skb->data, data, len);
|
||||||
__skb_trim(skb, len);
|
skb_set_tail_pointer(skb, len);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue