linux syscall get_robust_list causes panic

Chagin Dmitry dchagin at freebsd.org
Sun Jun 14 15:34:50 UTC 2009


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);


-- 
Have fun!
chd
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20090614/a7db2231/attachment.pgp


More information about the freebsd-current mailing list