diff options
author | Felix Fietkau <nbd@openwrt.org> | 2016-02-02 16:39:08 +0300 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2016-02-24 11:04:33 +0300 |
commit | 88665f5a797a832ff7926ad2287ee41738bc09b9 (patch) | |
tree | ef3d53d5b3235177a8eabc6ee4b523c9f64bf7ac /net | |
parent | ea32f065bd3e3e09f0bcb3042f1664caf6b3e233 (diff) | |
download | linux-88665f5a797a832ff7926ad2287ee41738bc09b9.tar.xz |
mac80211: move A-MSDU skb_linearize call to ieee80211_amsdu_to_8023s
Prepararation for zero-copy A-MSDU support with page fragment SKBs
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net')
-rw-r--r-- | net/mac80211/rx.c | 3 | ||||
-rw-r--r-- | net/wireless/util.c | 3 |
2 files changed, 3 insertions, 3 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index 9fb7074f0280..44192143ebdf 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c @@ -2223,9 +2223,6 @@ ieee80211_rx_h_amsdu(struct ieee80211_rx_data *rx) skb->dev = dev; __skb_queue_head_init(&frame_list); - if (skb_linearize(skb)) - return RX_DROP_UNUSABLE; - ieee80211_amsdu_to_8023s(skb, &frame_list, dev->dev_addr, rx->sdata->vif.type, rx->local->hw.extra_tx_headroom, true); diff --git a/net/wireless/util.c b/net/wireless/util.c index 92770427b211..6a407699a900 100644 --- a/net/wireless/util.c +++ b/net/wireless/util.c @@ -657,6 +657,9 @@ void ieee80211_amsdu_to_8023s(struct sk_buff *skb, struct sk_buff_head *list, int remaining, err; u8 dst[ETH_ALEN], src[ETH_ALEN]; + if (skb_linearize(skb)) + goto out; + if (has_80211_header) { err = ieee80211_data_to_8023(skb, addr, iftype); if (err) |