diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/mac80211/mesh_pathtbl.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/net/mac80211/mesh_pathtbl.c b/net/mac80211/mesh_pathtbl.c index 3c2bcb2de844..ede4f5242e0b 100644 --- a/net/mac80211/mesh_pathtbl.c +++ b/net/mac80211/mesh_pathtbl.c | |||
@@ -307,14 +307,14 @@ static void mesh_path_move_to_queue(struct mesh_path *gate_mpath, | |||
307 | 307 | ||
308 | while (num_skbs--) { | 308 | while (num_skbs--) { |
309 | skb = __skb_dequeue(&failq); | 309 | skb = __skb_dequeue(&failq); |
310 | if (copy) | 310 | if (copy) { |
311 | cp_skb = skb_copy(skb, GFP_ATOMIC); | 311 | cp_skb = skb_copy(skb, GFP_ATOMIC); |
312 | if (cp_skb) | ||
313 | __skb_queue_tail(&failq, cp_skb); | ||
314 | } | ||
312 | 315 | ||
313 | prepare_for_gate(skb, gate_mpath->dst, gate_mpath); | 316 | prepare_for_gate(skb, gate_mpath->dst, gate_mpath); |
314 | __skb_queue_tail(&gateq, skb); | 317 | __skb_queue_tail(&gateq, skb); |
315 | |||
316 | if (copy && cp_skb) | ||
317 | __skb_queue_tail(&failq, cp_skb); | ||
318 | } | 318 | } |
319 | 319 | ||
320 | spin_lock_irqsave(&gate_mpath->frame_queue.lock, flags); | 320 | spin_lock_irqsave(&gate_mpath->frame_queue.lock, flags); |