Re: arla 0.21 Oops on Linux 2.2.1

Chuck Lever (cel@monkey.org)
Tue, 2 Feb 1999 22:54:05 -0500 (EST)


On 3 Feb 1999, Magnus Ahltorp wrote:

> > >>EIP: c015efc0 <get_stat+c0/2c0>
> > Trace: c01336ef <lookup_dentry+1ef/280>
> > Trace: c015fc2f <get_process_array+6f/c0>
> > Trace: c015fd6a <array_read+ea/240>
> > Trace: c012a404 <filp_open+44/100>
> > Trace: c012abae <sys_read+ae/100>
> > Trace: c010a82c <system_call+34/38>
>
> I have not dug far into this, since I don't have a 2.2.1 i386 kernel
> compiled at the moment. Would you mind comparing the assembly source
> from "objdump -d fs/proc/array.o" (the get_stat function) with the C
> source in fs/proc/array.c (or just send me the assembly source for the
> get_stat function)?
>
> I looked at the differences between 2.2.0 and 2.2.1, and there have
> been quite some changes in that function. I cannot think of any reason
> why this should be an arla problem. It is surely a bug, I just think
> it's a kernel one.

i think you're right about that. i've copied linux-kernel on this note to
log the problem.

also, i was able to oops a 2.2.1 machine running arla 0.19. 0.19 had been
working fine before upgrading to 2.2.1.

the oops occurs on the first instruction for the statement at line 858 of
fs/proc/array.c, in function get_stat():

vsize += vma->vm_end - vma->vm_start;

in assembler, that's:

movl 4(%edx),%eax
movl 8(%edx),%ecx
subl %eax,%ecx
movl %ecx,%eax
addl %eax,%edi
movl 12(%edx),%edx

vma is in %edx, and according to ksymoops, it contained 0x00000001. this
bogus value came from either tsk->mm->mmap, or vma->vm_next ; i can't tell
which.

- Chuck Lever

--
corporate:	<chuckl@netscape.com>
personal:	<chucklever@netscape.net> or <cel@monkey.org>

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/