From: David S. Miller Date: Mon, 18 Aug 2008 06:37:16 +0000 (-0700) Subject: pkt_sched: Fix missed RCU unlock in dev_queue_xmit() X-Git-Tag: v2.6.27-rc4~39^2~16 X-Git-Url: http://ftp.safe.ca/?a=commitdiff_plain;ds=sidebyside;h=96d203169d1d851ac1468f7d4459a09581be364c;p=safe%2Fjmp%2Flinux-2.6 pkt_sched: Fix missed RCU unlock in dev_queue_xmit() Noticed by Jarek Poplawski. Signed-off-by: David S. Miller --- diff --git a/net/core/dev.c b/net/core/dev.c index 819f017..8d13380 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -1805,14 +1805,12 @@ gso: spin_lock(root_lock); if (unlikely(test_bit(__QDISC_STATE_DEACTIVATED, &q->state))) { - spin_unlock(root_lock); + kfree_skb(skb); rc = NET_XMIT_DROP; - goto out_kfree_skb; + } else { + rc = qdisc_enqueue_root(skb, q); + qdisc_run(q); } - - rc = qdisc_enqueue_root(skb, q); - qdisc_run(q); - spin_unlock(root_lock); goto out;