[eepro100] Re: eepro100 hangs ...

Andrey Savochkin saw@saw.sw.com.sg
Thu, 14 Sep 2000 09:39:39 +0800


On Wed, Sep 13, 2000 at 01:05:52PM +0100, Pedro Ribeiro wrote:
> My system, a dual PIII550 is sometimes hanging with eepro problems, here
> goes some details that I hope could help to fix the problem(s).
> The eepro driver included in linux 2.2.17 (eepro100.c:v1.09j-t 9/29/99 /
> $Revision: $ 2000/05/31) was hanging with this messages:
> Sep 13 11:08:37 garfield kernel: eth0: can't fill rx buffer (force 0)!
> Sep 13 11:08:37 garfield kernel: eth0: Tx ring dump,  Tx queue 139246311 /
> 139246311:
> Sep 13 11:08:37 garfield kernel: eth0:     0 200ca000.

The original reason for spitting the messages was a temporary shortage of
memory for receive buffers and, thus, stopping the receiving process.
But the driver should resume the operations after that.

The problem is that currently resuming after receiving stop is
transmit-driven.  That is, the driver checks if memory becomes available in
transmit calls and transmit done interrupts.  It may happen that there were
no transmit events in your case, and the driver was unable to resume
operations.  You may check this hypothesis by continuously running a ping in
the background.  With it you should see the similar messages "can't fill rx
buffer" but the driver should continue to operate.

Best regards
					Andrey V.