Thread (1 message) 1 message, 1 author, 2007-09-11

Re: [OOPS] 2.6.23-rc5 in tcp/net/nfsd

From: Neil Brown <hidden>
Date: 2007-09-11 09:27:13
Also in: linux-nfs, lkml

On Tuesday September 11, mark@hindley.org.uk wrote:
This oops appeared over night on a box running 2.6.23-rc5 (recent with the
tcp_input.c fix).

I can't find a similar one reported.

Okay..... this is weird.
Mark


BUG: unable to handle kernel NULL pointer dereference at virtual address 0000007e 
                                                                           ^^^^^^^^

That is the bad address,
EFLAGS: 00010246   (2.6.23-rc5-2-mcyrixiii #1)
EIP is at ip_fragment+0x7f/0x680
eax: c3c09c00   ebx: 00000000   ecx: b524d006   edx: 0000007b
                                                  ^^^^^^^^^^^^^

It looks like an offset of 3 from edx.  I got that from decoding:
Code: .... <00> ba 03 00 00 00 bf a6 ff ff
which is 
   0:   00 ba 03 00 00 00         add    %bh,0x3(%rdx)

However that instruction doesn't appear in ip_fragment.
The code in ip_fragment reads:
  27:   b9 04 00 00 00            mov    $0x4,%ecx
                    ^^
  2c:   ba 03 00 00 00            mov    $0x3,%edx
        ^^^^^^^^^^^^^^

which contains the bytes of the offending instruction.
Note that $0x4 is ICMP_FRAG_NEEDED and $0x3 is ICMP_DEST_UNREACH:
these are args to icmp_send.  So the latter is the correct disassembly
based on the C code.

So somehow the kernel is jumping to a bad address.  I don't know how
that would happening.... maybe a single bit error in memory or a
register???

NeilBrown
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help