mac80211: Ensure enough headroom when forwarding mesh pkt
authorCedric Izoard <Cedric.Izoard@ceva-dsp.com>
Wed, 7 Dec 2016 09:59:00 +0000 (09:59 +0000)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 13 Dec 2016 15:08:37 +0000 (16:08 +0100)
When a buffer is duplicated during MESH packet forwarding,
this patch ensures that the new buffer has enough headroom.

Signed-off-by: Cedric Izoard <cedric.izoard@ceva-dsp.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/rx.c

index eeab7250f4b978bd2af2b320ae8f430ab00cc81d..3e289a64ed4317a8a495cb7cac8197fb9ce10c3e 100644 (file)
@@ -2472,7 +2472,7 @@ ieee80211_rx_h_mesh_fwding(struct ieee80211_rx_data *rx)
        if (!ifmsh->mshcfg.dot11MeshForwarding)
                goto out;
 
-       fwd_skb = skb_copy(skb, GFP_ATOMIC);
+       fwd_skb = skb_copy_expand(skb, local->tx_headroom, 0, GFP_ATOMIC);
        if (!fwd_skb) {
                net_info_ratelimited("%s: failed to clone mesh frame\n",
                                    sdata->name);