Subject: Ethernet driver bug?
To: None <port-powerpc@netbsd.org>
From: Alexander A. V'ushkov <alexvj@ngs.ru>
List: port-powerpc
Date: 09/17/2002 18:26:19
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 ties 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.