[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20090118.215749.215909519.davem@davemloft.net>
Date: Sun, 18 Jan 2009 21:57:49 -0800 (PST)
From: David Miller <davem@...emloft.net>
To: richard.rojfors@...ian.se
Cc: netdev@...r.kernel.org
Subject: Re: [PATCH] macb: avoid lockup when TGO during underrun
From: Richard Röjfors <richard.rojfors@...ian.se>
Date: Thu, 15 Jan 2009 19:30:16 +0100
> This patch against linux-2.6.28 solves an issue where macb might run out of TX buffers.
>
> In rare cases when an underrun occur, all macb buffers where consumed and the netif_queue was stopped infinitely. This
> happens then the TGO (transfer ongoing) bit in the TSR is set (and UND). It seems like clening up after the underrun
> makes the driver and the macb hardware end up in an inconsistent state. The result of this is that in the following
> calls to macb_tx no TX buffers are released -> the netif_queue was stopped, and never woken up again.
>
> The solution is to disable the transmitter, if TGO is set, before clening up after the underrun, and re-enable the
> transmitter when the cleaning up is done.
>
>
> A patch to avoid lockup in the macb driver in some rare underrun cases.
> Signed-off-by: Richard Röjfors <richard.rojfors@...ian.se>
Patch applied, thanks Richard.
--
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