[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4864769B.5050007@garzik.org>
Date: Fri, 27 Jun 2008 01:11:55 -0400
From: Jeff Garzik <jeff@...zik.org>
To: Andy Gospodarek <andy@...yhouse.net>
CC: netdev@...r.kernel.org, jeffrey.t.kirsher@...el.com,
jesse.brandeburg@...el.com
Subject: Re: [PATCH 4/4] e1000: remove e1000_clean_tx_irq call from e1000_netpoll
Andy Gospodarek wrote:
> The call to e1000_clean_tx_irq in e1000_netpoll can race with the call
> to e1000_clean_tx_irq in e1000_clean. With a small bit of tweaking to
> to netpoll_send_skb to simulate a system that was under extreme stress,
> I was able to reproduce these concurrent calls. This can result in
> multiple frees to the skbs on the tx ring buffer.
>
> Dropping this call from e1000_netpoll should be fine since we can rely
> on the calls in e1000_clean to do what is needed since napi will poll
> the hardware just after calling poll_controller.
>
> Signed-off-by: Andy Gospodarek <andy@...yhouse.net>
> ---
> drivers/net/e1000/e1000_main.c | 1 -
> 1 files changed, 0 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
> index 0dc1ef0..047028f 100644
> --- a/drivers/net/e1000/e1000_main.c
> +++ b/drivers/net/e1000/e1000_main.c
> @@ -5277,7 +5277,6 @@ e1000_netpoll(struct net_device *netdev)
>
> disable_irq(adapter->pdev->irq);
> e1000_intr(adapter->pdev->irq, netdev);
> - e1000_clean_tx_irq(adapter, adapter->tx_ring);
> #ifndef CONFIG_E1000_NAPI
> adapter->clean_rx(adapter, adapter->rx_ring);
I'm gonna push this towards .27, since this is a core behavior very late
in the .26 game
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists