From: David S. Miller Date: Wed, 24 Sep 2008 03:47:22 +0000 (-0700) Subject: aoe: Fix OOPS after SKB queue changes. X-Git-Tag: v2.6.28-rc1~717^2~197 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d87798450a7635ab1bcc80271a13ce4a53b016a9;p=platform%2Fupstream%2Fkernel-adaptation-pc.git aoe: Fix OOPS after SKB queue changes. Reported by Thomas Graf. If we don't unlink the SKB from the queue when we send it out in aoenet_xmit(), dev_hard_start_xmit() will see skb->next as non-NULL and interpret this to mean the SKB is part of a GSO segment list. Add __skb_unlink() call to fix that. Signed-off-by: David S. Miller --- diff --git a/drivers/block/aoe/aoenet.c b/drivers/block/aoe/aoenet.c index 8fb2603..9157d64 100644 --- a/drivers/block/aoe/aoenet.c +++ b/drivers/block/aoe/aoenet.c @@ -99,8 +99,10 @@ aoenet_xmit(struct sk_buff_head *queue) { struct sk_buff *skb, *tmp; - skb_queue_walk_safe(queue, skb, tmp) + skb_queue_walk_safe(queue, skb, tmp) { + __skb_unlink(skb, queue); dev_queue_xmit(skb); + } } /*