mac80211: update brcmfmac including missing boardrev workaround
[openwrt.git] / package / kernel / mac80211 / patches / 318-mac80211-move-A-MSDU-skb_linearize-call-to-ieee80211.patch
1 From: Felix Fietkau <nbd@openwrt.org>
2 Date: Tue, 2 Feb 2016 14:39:08 +0100
3 Subject: [PATCH] mac80211: move A-MSDU skb_linearize call to
4  ieee80211_amsdu_to_8023s
5
6 Prepararation for zero-copy A-MSDU support with page fragment SKBs
7
8 Signed-off-by: Felix Fietkau <nbd@openwrt.org>
9 Signed-off-by: Johannes Berg <johannes.berg@intel.com>
10 ---
11
12 --- a/net/mac80211/rx.c
13 +++ b/net/mac80211/rx.c
14 @@ -2203,9 +2203,6 @@ ieee80211_rx_h_amsdu(struct ieee80211_rx
15         skb->dev = dev;
16         __skb_queue_head_init(&frame_list);
17  
18 -       if (skb_linearize(skb))
19 -               return RX_DROP_UNUSABLE;
20 -
21         ieee80211_amsdu_to_8023s(skb, &frame_list, dev->dev_addr,
22                                  rx->sdata->vif.type,
23                                  rx->local->hw.extra_tx_headroom, true);
24 --- a/net/wireless/util.c
25 +++ b/net/wireless/util.c
26 @@ -657,6 +657,9 @@ void ieee80211_amsdu_to_8023s(struct sk_
27         int remaining, err;
28         u8 dst[ETH_ALEN], src[ETH_ALEN];
29  
30 +       if (skb_linearize(skb))
31 +               goto out;
32 +
33         if (has_80211_header) {
34                 err = ieee80211_data_to_8023(skb, addr, iftype);
35                 if (err)