Messages in this thread Patch in this message | | | Date | Thu, 26 Aug 2004 14:59:53 -0500 | From | Matt Mackall <> | Subject | [PATCH 2/5] netpoll: revert queue stopped change |
| |
From: Jeff Moyer <jmoyer@redhat.com>
Here's the first of the broken out patch set. This puts the check for netif_queue_stopped back into netpoll_send_skb. Network drivers are not designed to have their hard_start_xmit routines called when the queue is stopped.
Signed-off-by: Jeff Moyer <jmoyer@redhat.com> Signed-off-by: Matt Mackall <mpm@selenic.com>
--- linux-2.6.7/net/core/netpoll.c.orig 2004-08-16 11:57:46.890322256 -0400 +++ linux-2.6.7/net/core/netpoll.c 2004-08-16 12:17:34.477781520 -0400 @@ -168,6 +168,18 @@ repeat: spin_lock(&np->dev->xmit_lock); np->dev->xmit_lock_owner = smp_processor_id(); + /* + * network drivers do not expect to be called if the queue is + * stopped. + */ + if (netif_queue_stopped(np->dev)) { + np->dev->xmit_lock_owner = -1; + spin_unlock(&np->dev->xmit_lock); + + netpoll_poll(np); + goto repeat; + } + status = np->dev->hard_start_xmit(skb, np->dev); np->dev->xmit_lock_owner = -1; spin_unlock(&np->dev->xmit_lock);
-- Mathematics is the supreme nostalgia of our time. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |