On Tue, Nov 30, 2004 at 10:32:31AM +0100, Tommy Christensen wrote:
> An interrupt handler shouldn't call dev_queue_xmit() directly. If
> this indeed happens, it needs to be fixed. Which handler is this?
The call path according to KDB goes like this:
application does sendmsg()
calls ptype->func(skb2, skb->dev, ptype),
packet_rcv (and this runs with BHs enabled)
take the &sk->sk_receive_queue spinlock
*** timer interrupt
take the dev->queue_lock spin lock
blocks on the &sk->sk_receive_queue spinlock
Before lockless-loopback this never triggered because we did a
spin_lock_bh(&dev->xmit_lock) around the call to dev_queue_xmit_nit.
Olaf Kirch | Things that make Monday morning interesting, #2:
okir@xxxxxxx | "We have 8,000 NFS mount points, why do we keep
---------------+ running out of privileged ports?"