Subject: Ethernet driver bug?
To: None <port-ofppc@netbsd.org>
From: Alexander A. V'ushkov <alexvj@ngs.ru>
List: port-ofppc
Date: 09/17/2002 18:28:36
Hi, All!

I'm continuing to start ofppc port of NetBSD on MPC8260.

I'm deal with erratic NFS behavior, and as I suppose, there is a bug in =
the implementation of the Ethernet driver (function ether_input, file =
/net/if_ether_subr.c) Sometimes software interrupt, responsible for =
processing IP-queue of IP-stack (ip_intr() function) is called BEFORE =
than packet is really placed into IP-queue ("ipintrq" variable). As a =
result, the packet will be processed only when the next packet arrives.

I suppose that such behavior is tied with the specificity of the call of =
read function of the "ofnet" driver. It is called with assistance of =
callout mechinism. Probably, the current interrupt priority level lets =
software interrupt to occur (unlike calling the read function from =
hardware interrupt).

I've changed the order of actions. At first I've putted packet into =
IP-queue, and then set interrupt request. The error has disappeared.

So, I want to know you opinion about the problem.