netdev
[Top] [All Lists]

qdisc_restart locking bug?

To: netdev@xxxxxxxxxxx
Subject: qdisc_restart locking bug?
From: Jeff Garzik <jgarzik@xxxxxxxxx>
Date: Fri, 15 Nov 2002 14:01:22 -0500
Cc: davem@xxxxxxxxxx, kuznet@xxxxxxxxxxxxx
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2b) Gecko/20021018
When qdisc_restart() is called from qdisc_run(), dev->queue_lock is obtained via spin_lock_bh().

When dev->hard_start_xmit() is called from qdisc_restart(), dev->queue_lock is dropped, and then re-acquired using only spin_lock().

So, doesn't qdisc_restart need s/spin_lock/spin_lock_bh/ for dev->queue_lock?

When looking at the dev_queue_xmit -> qdisc_run -> qdisc_restart call path, it seems so to me.

        Jeff




<Prev in Thread] Current Thread [Next in Thread>