| To: | jgarzik@xxxxxxxxx |
|---|---|
| Subject: | Re: NAPI note |
| From: | "David S. Miller" <davem@xxxxxxxxxx> |
| Date: | Mon, 17 Feb 2003 18:57:19 -0800 (PST) |
| Cc: | manfred@xxxxxxxxxxxxxxxx, zaitcev@xxxxxxxxxx, jbourne@xxxxxxxxxxxxx, netdev@xxxxxxxxxxx |
| In-reply-to: | <3E4D8295.2050400@xxxxxxxxx> |
| References: | <3E4D66DF.3040800@xxxxxxxxxxxxxxxx> <3E4D8295.2050400@xxxxxxxxx> |
| Sender: | netdev-bounce@xxxxxxxxxxx |
From: Jeff Garzik <jgarzik@xxxxxxxxx> Date: Fri, 14 Feb 2003 18:58:13 -0500 Manfred Spraul wrote: > It seems to be a generic NAPI restriction: > The caller of netif_receive_skb() must not own a spinlock that is > acquired from an interrupt handler. Thanks much for noticing this, Manfred. I think this logic is buggy. In the example I've seen posted, only a NAPI implementation bug could cause the situation to occur. If cpu1 is in ->poll() for the driver, then by definition the device shall not cause interrupts. The device's interrupts are disabled before we enter the ->poll() handler, and as such the "cpu2 take device interrupt and takes driver->lock" cannot occur. If anything we've found a bug in interrupt disabling in the tg3 driver. |
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | Re: Getting details about an 802.1q VLAN interface from userspace, David S. Miller |
|---|---|
| Next by Date: | [code] new NAPI helper functions, Jeff Garzik |
| Previous by Thread: | NAPI note (was Re: lockups with 2.4.20 (tg3? net/core/dev.c|deliver_to_old_ones)), Jeff Garzik |
| Next by Thread: | Re: NAPI note, Manfred Spraul |
| Indexes: | [Date] [Thread] [Top] [All Lists] |