All of lore.kernel.org
 help / color / mirror / Atom feed
* qdisc_restart locking bug?
@ 2002-11-15 19:01 Jeff Garzik
  2002-11-15 21:41 ` kuznet
  0 siblings, 1 reply; 2+ messages in thread
From: Jeff Garzik @ 2002-11-15 19:01 UTC (permalink / raw)
  To: netdev; +Cc: davem, kuznet

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

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: qdisc_restart locking bug?
  2002-11-15 19:01 qdisc_restart locking bug? Jeff Garzik
@ 2002-11-15 21:41 ` kuznet
  0 siblings, 0 replies; 2+ messages in thread
From: kuznet @ 2002-11-15 21:41 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: netdev, davem

Hello!

> When dev->hard_start_xmit() is called from qdisc_restart(), 
> dev->queue_lock is dropped, 

Using spin_unlock(). softirqs are not enabled.

>			and then re-acquired using only spin_lock().

Yes.


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

It need not.

Alexey

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2002-11-15 21:41 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-11-15 19:01 qdisc_restart locking bug? Jeff Garzik
2002-11-15 21:41 ` kuznet

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.