Port-amd64 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Frequent kernel panic with compat_linux module



On Wed, Dec 10, 2008 at 10:31:36PM +0000, David Laight wrote:

> On Wed, Dec 10, 2008 at 01:35:26AM +0100, Nicolas Joly wrote:
> > 
> >         l->l_sysent = sy;
> >         error = (*sy->sy_call)(l, uap, rval);
> >     ca2f:       48 89 e2                mov    %rsp,%rdx
> >     ca32:       48 89 ab 08 03 00 00    mov    %rbp,0x308(%rbx)
> >     ca39:       4c 89 e6                mov    %r12,%rsi
> >     ca3c:       48 89 df                mov    %rbx,%rdi
> >     ca3f:       ff 55 08                callq  *0x8(%rbp)
> >         l->l_sysent = NULL;
> >     ca42:       48 c7 83 08 03 00 00    movq   $0x0,0x308(%rbx)     <----
> >     ca49:       00 00 00 00 
> 
> Well, %rbx is supposed to be caller-saved and must have been valid
> at address ca32.  So something must be trashing it!
> 
> Did you work out which system call(s) were active?

You could try increasing the size of rval[] and the argument array to see if
that works around it - at least then you have somewhere to start looking. In
combination with the syscall number it should not be hard too find it.

Andrew


Home | Main Index | Thread Index | Old Index