Subject: Re: EBSA285 linux 2.2.2-rmk4 lockup

From: Philip Blundell <[email-masked]>
Date: Tue, 02 Mar 1999 13:58:37 +0000

>When I ping -f to it, it crashes

Does it just stop dead, or is there an error message?

p.

unsubscribe: body of `unsubscribe linux-arm' to [email-masked]

---

From: christophe leroy <[email-masked]>
Date: Tue, 02 Mar 1999 14:39:21 +0000

I've now a working kernel on my EBSA285

christophe

---

From: Philip Blundell <[email-masked]>
Date: Tue, 02 Mar 1999 14:44:52 +0000

>I've the following program running as init, and when I ping -f, after
>about 200 packets, my program stops and the kernel doesn't responds to
>pings anymore.

Sounds like all might not be well with the 3com driver still.  I tried flood 
pinging my NetWinder (2.2.2/rmk4/philb990301) and everything seemed ok.

fountain:/home/pb# ping -f pig
PING pig.nexus.co.uk (192.0.0.23): 56 data bytes
....
--- pig.nexus.co.uk ping statistics ---
25280 packets transmitted, 25276 packets received, 0% packet loss
round-trip min/avg/max = 0.6/3.3/145.1 ms
fountain:/home/pb#

Is there a later version of 3c59x.c on Becker's web site?  Might be worth 
taking a look.  I had a quick glance at the current version and it looks like 
the consequences of failing to allocate a receive buffer might be bad.  Also 
the DMA cache flushing isn't quite right.  We need to flush the cache 
immediately after allocating the skb, not after it's been filled by the card.  
Otherwise there might be dirty lines sitting in the cache that could in theory 
get evicted on top of the newly-written packet - unlikely but possible.  And I 
think there should be a cache flush at around line 1813 too -- ie just after 
we memcpy the data out of a buffer that's going to be recycled.

Russell, I don't quite understand why ARM systems do better with copybreak set 
to infinity.  Can you explain why that is?

p.

---

From: christophe leroy <[email-masked]>
Date: Tue, 02 Mar 1999 15:13:42 +0000

> Does it just stop dead, or is there an error message?

No, no message at all.

christophe

#include <stdio.h>
#include <sys/time.h>
#include <fcntl.h>

main()
{
        int t;
        while (1) {
                t=time(0);
                printf("Coucou les amis, il est %s",ctime(&t));
                fflush(stdout);
                sleep(1);
        }
}
unsubscribe: body of `unsubscribe linux-arm' to [email-masked]