diff options
Diffstat (limited to 'net/mac80211/rx.c')
-rw-r--r-- | net/mac80211/rx.c | 5 |
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; |