Date: Sun, 14 Jun 2009 17:30:44 +0200 (CEST) From: Alexander Best <alexbestms@math.uni-muenster.de> To: Chagin Dmitry <dchagin@freebsd.org> Cc: freebsd-current@freebsd.org Subject: Re: linux syscall get_robust_list causes panic Message-ID: <permail-200906141530441e86ffa80000381d-a_best01@message-id.uni-muenster.de> In-Reply-To: <20090614151717.GA26276@dchagin.static.corbina.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
wow. thanks for the fix. after applying the patch the panic no longer occurs. great job! :-) hope this'll make it into CURRENT quickly. ;) cheers. Chagin Dmitry schrieb am 2009-06-14: > On Sun, Jun 14, 2009 at 04:27:45PM +0200, Alexander Best wrote: > > hi there, > > i tried to run the latest release (20090531) of the linux test > > project (ltp) > > with emulators/linux_dist-gentoo-stage3. however the kernel panics > > after ltp's > > get_robust_list(2) test. set_robust_list(2) passes without any > > problems. > > i've attached a screenshot of the panic and the source which is > > causing the > > panic. you won't be able to compile it without ltp however. after > > installing > > and compiling ltp the source and the executable can be found in > > "/usr/local/gentoo-stage3/ltp-full-20090531/testcases/kernel/syscalls/get_robust_list". > > simply running the > > "/usr/local/gentoo-stage3/ltp-full-20090531/testcases/kernel/syscalls/get_robust_list/get_robust_list01" > > executable results in a panic. > > unfortunately i cannot supply a complete bt, because i only own a > > usb keyboard > > which doesn't respond after the panic. actually i'm a bit surprised > > the > > debugger was started, because i have "KDB_UNATTENDED" in my kernel > > conf. any > > reason the machine doesn't reboot and save the dump to > > /var/crash/vmcore.*? > please, try inlined patch. > diff --git a/sys/compat/linux/linux_futex.c > b/sys/compat/linux/linux_futex.c > index cb04cd8..0f781fc 100644 > --- a/sys/compat/linux/linux_futex.c > +++ b/sys/compat/linux/linux_futex.c > @@ -707,8 +707,10 @@ linux_get_robust_list(struct thread *td, struct > linux_get_robust_list_args *args > /* XXX: ptrace? */ > if (priv_check(td, PRIV_CRED_SETUID) || > priv_check(td, PRIV_CRED_SETEUID) || > - p_candebug(td, p)) > + p_candebug(td, p)) { > + PROC_UNLOCK(p); > return (EPERM); > + } > head = em->robust_futexes; > PROC_UNLOCK(p);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?permail-200906141530441e86ffa80000381d-a_best01>