提交 96d20316 编写于 作者: D David S. Miller

pkt_sched: Fix missed RCU unlock in dev_queue_xmit()

Noticed by Jarek Poplawski.
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 13601cd8
...@@ -1805,14 +1805,12 @@ int dev_queue_xmit(struct sk_buff *skb) ...@@ -1805,14 +1805,12 @@ int dev_queue_xmit(struct sk_buff *skb)
spin_lock(root_lock); spin_lock(root_lock);
if (unlikely(test_bit(__QDISC_STATE_DEACTIVATED, &q->state))) { if (unlikely(test_bit(__QDISC_STATE_DEACTIVATED, &q->state))) {
spin_unlock(root_lock); kfree_skb(skb);
rc = NET_XMIT_DROP; 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); spin_unlock(root_lock);
goto out; goto out;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册