aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/rx.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211/rx.c')
-rw-r--r--net/mac80211/rx.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 01a3f2630eaf..5e9d3bc6a2d9 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -1831,9 +1831,11 @@ ieee80211_rx_h_mesh_fwding(struct ieee80211_rx_data *rx)
1831 1831
1832 fwd_skb = skb_copy(skb, GFP_ATOMIC); 1832 fwd_skb = skb_copy(skb, GFP_ATOMIC);
1833 1833
1834 if (!fwd_skb && net_ratelimit()) 1834 if (!fwd_skb && net_ratelimit()) {
1835 printk(KERN_DEBUG "%s: failed to clone mesh frame\n", 1835 printk(KERN_DEBUG "%s: failed to clone mesh frame\n",
1836 sdata->name); 1836 sdata->name);
1837 goto out;
1838 }
1837 1839
1838 fwd_hdr = (struct ieee80211_hdr *) fwd_skb->data; 1840 fwd_hdr = (struct ieee80211_hdr *) fwd_skb->data;
1839 memcpy(fwd_hdr->addr2, sdata->vif.addr, ETH_ALEN); 1841 memcpy(fwd_hdr->addr2, sdata->vif.addr, ETH_ALEN);
@@ -1871,6 +1873,7 @@ ieee80211_rx_h_mesh_fwding(struct ieee80211_rx_data *rx)
1871 } 1873 }
1872 } 1874 }
1873 1875
1876 out:
1874 if (is_multicast_ether_addr(hdr->addr1) || 1877 if (is_multicast_ether_addr(hdr->addr1) ||
1875 sdata->dev->flags & IFF_PROMISC) 1878 sdata->dev->flags & IFF_PROMISC)
1876 return RX_CONTINUE; 1879 return RX_CONTINUE;