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 Sat, Dec 13, 2008 at 01:54:51PM +0000, Andrew Doran wrote:
> 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.
Thanks for the tip ...
Unfortunately both increasing rval from 2 to 20 members, and using an
array of 60 entries for args does not make any difference. Just like
both kernel and modules compiled with stack smashing protection
(USE_SSP=yes) ...
--
Nicolas Joly
Biological Software and Databanks.
Institut Pasteur, Paris.
Home |
Main Index |
Thread Index |
Old Index