arpd causing oops (non-fatal)

Nathan Spande (nspande@gac.edu)
Sat, 23 Nov 1996 14:27:03 -0600


With kernels 2.1.10-2.1.13 I get the following (non-fatal) oops upon
startup.

Unable to handle kernel NULL pointer dereference at virtual address 00000040
current->tss.cr3 = 00d2a000,
*pde = 00000000
Oops: 0000
CPU: 0
EIP: 0010:[<c01513b0>]
EFLAGS: 00010246
eax: c01513a0 ebx: c0cb7504 ecx: 00000000 edx: c0cb7524
esi: 00000008 edi: c0cb7520 ebp: 00000008 esp: c0d54f74
ds: 0018 es: 0018 ss: 0018
Process arpd (pid: 67, process nr: 12, stackpage=c0d54000)
Stack: c0cb7504 bffffe3c c0166196 00000008 c0cb7524 c0e1150c c008bc40 c0e114d8
ffffffea 0000001c c0124399 c0e114d8 c008bc40 bffffe20 0000001c c0d40810
bffffe20 08048628 bffffe04 c010a9d8 00000002 bffffe20 0000001c bffffe20
Call Trace: [<c0166196>] [<c0124399>] [<c010a9d8>]
Code: 83 7e 38 1c 74 1a 6a 01 56 e8 42 ab fe ff b8 ea ff ff ff 83

Which ksymoops interprets as:
>>EIP: c01513b0 <arpd_callback+10/e0>
Trace: c0166196 <netlink_write+a6/d0>
Trace: c0124399 <sys_write+b9/f0>
Trace: c010a9d8 <system_call+38/40>

Code: c01513b0 <arpd_callback+10/e0> cmpl $0x1c,0x38(%esi)
Code: c01513b4 <arpd_callback+14/e0> je c01513d0 <arpd_callback+30/e0>
Code: c01513b6 <arpd_callback+16/e0> pushl $0x1
Code: c01513b8 <arpd_callback+18/e0> pushl %esi
Code: c01513b9 <arpd_callback+19/e0> call fffeab50 <_EIP+fffeab50>
Code: c01513be <arpd_callback+1e/e0> movl $0xffffffea,%eax
Code: c01513c3 <arpd_callback+23/e0> addl $0xffffff90,(%eax)
Code: c01513c6 <arpd_callback+26/e0> nop
Code: c01513c7 <arpd_callback+27/e0> nop

I have looked for a new version of arpd, and compiled the one I have
again with the most recent source tree. This first happened with
2.1.10, but I haven't had time to track down which particular bit of
the patch it was that did it.

It turns out that I can't even start arpd manually. I get the
message:

arpd[209]: Initializing, version 1.0.2
arpd[209]: cannot open /dev/arpd: Device or resource busy

in my logs when I try to start it, although arpd doesn't show
up as a running process.

I have a 486, two NE2000 cards, and the strange stuff I have built
into the kernel includes bridging, aliasing, kerneld, modversions,
netlink, and rtc. In the 2.1.13 kernel I have added IP forwarding,
but I had the problem before including that. Bridging is not turned
on initially (I use it only occasionally to allow another machine
access to the ether jack in my room).

The only patch I have in the kernel is (was) the bridging patch from
the bridgex-0.2 package (most, if not all, of which has now been
incorporated into the main 2.1 tree).

I can send more info if needed.

Nathan Spande
nspande@gac.edu