summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorMilton Miller <miltonm@bga.com>2010-12-30 02:01:03 -0600
committerGreg Kroah-Hartman <gregkh@suse.de>2011-02-17 14:46:47 -0800
commitfc17a355cce36e03c43d7f06001296267f90c822 (patch)
tree5f47cfc3883ebfc84c0acd2474dde0eebdbbaf32 /net
parentce40627dba4a0e216f88e738be707b2b9021a8d1 (diff)
mac80211: fix mesh forwarding when ratelimited too
commit 919bbad580445801c22ef6ccbe624551fee652bd upstream. Commit b51aff057c9d0ef6c529dc25fd9f775faf7b6c63 said: Under memory pressure, the mac80211 mesh code may helpfully print a message that it failed to clone a mesh frame and then will proceed to crash trying to use it anyway. Fix that. Avoid the reference whenever the frame copy is unsuccessful regardless of the debug message being suppressed or printed. Signed-off-by: Milton Miller <miltonm@bga.com> Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'net')
-rw-r--r--net/mac80211/rx.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index a09196afafaa..2bec9b9dba09 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -1712,11 +1712,11 @@ ieee80211_rx_h_mesh_fwding(struct ieee80211_rx_data *rx)
fwd_skb = skb_copy(skb, GFP_ATOMIC);
- if (!fwd_skb && net_ratelimit()) {
+ if (!fwd_skb && net_ratelimit())
printk(KERN_DEBUG "%s: failed to clone mesh frame\n",
sdata->name);
+ if (!fwd_skb)
goto out;
- }
fwd_hdr = (struct ieee80211_hdr *) fwd_skb->data;
memcpy(fwd_hdr->addr2, sdata->vif.addr, ETH_ALEN);