Re: 2.6.31-rc1 crashes randomly on my Machine.

Al Viro
2009-06-26T07:15:27Z

On Fri, Jun 26, 2009 at 08:56:52AM +0200, Zeno Davatz wrote:

> Jun 25 21:19:12 zenogentoo Code: 00 00 00 c7 47 20 00 00 00 00 c7 47
> 24 00 00 00 00 c7 47 10 00 00 00 00 c7 47 14 00 00 00 00 c7 47 0c 00
> 00 00 00 e9 27 ff ff ff <ff> 89 e5 57 56 53 83 ec 34 89 45 d0 89 55 cc
> 89 4d c8 8b 70 6c
> Jun 25 21:19:12 zenogentoo EIP: [<c10d1d35>] seq_read+0x0/0x3a5 SS:ESP
> 0068:f4b01f44
> Jun 25 21:19:12 zenogentoo CR2: 0000000053565be5
> Jun 25 21:19:12 zenogentoo ---[ end trace 6254fef9dc80950b ]---
> Jun 25 21:19:12 zenogentoo BUG: unable to handle kernel paging request
> at 53565be5

Real cute... Disassembly of that sucker:
decl 0x535657e5(%ecx)
which matches nicely the address in page fault. However, that doesn't
look even remotely plausible for a beginning of function. OTOH,
disassembly at one byte offset from that gives
mov %esp,%ebp
push %edi
push %esi
push %ebx
which is exactly what you'd expect to see in such place. IOW, you've
got an off-by-one - it had jumped at one byte before the actual entry
point of seq_read().

The interesting question is whether that's a memory corruption of some
kind or a linker fuckup. Check what does System.map have for
seq_read; if it's that address (c10d1d35), the odds are that you've
got something fishy going on with linking. Do objdump of vmlinux and
check the functions nearby; ditto for fs/seq_file.o.