UML - kernel_thread shouldn't panic
PATCH 4/4 UML - kernel_thread shouldn't panic
kernel_thread should just return an error value on do_fork failure, not panic.
--
arch/um/kernel/process.c | 2 -- 1 file changed, 2 deletions(-)
arch/um/kernel/process.c +0 -2
@@ -97,8 +97,6 @@ int kernel_thread(int (*fn)(void *), voi current->thread.request.u.thread.arg = arg; pid =do_fork (CLONE_VM |CLONE_UNTRACED | flags,0 , ¤t->thread.regs,0 ,NULL ,NULL ); -if (pid <0 ) -panic ("do_fork failed in kernel_thread, errno = %d" , pid);return pid; }
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
User-mode-linux-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel
i´d like to acknowledge that this fixes the problem i had when creating loop-devices inside uml.
instead of crashing the whole uml, losetup now tells:
ioctl: LOOP_SET_FD: Resource temporarily unavailable
and dmesg:
Apr 2 20:17:53 localhost udevd[641]: udev_event_run: fork of child failed: Resource temporarily unavailable Apr 2 20:17:54 localhost last message repeated 4 times Apr 2 20:17:54 localhost udevd-event[3014]: run_program: fork of '/lib/udev/udev_run_hotplugd' failed:Resource temporarily unavailable Apr 2 20:17:54 localhost udevd-event[3014]: run_program: fork of '/lib/udev/udev_run_devd' failed: Resource temporarily unavailable Apr 2 20:17:54 localhost udevd-event[3014]: run_program: fork of '/sbin/pam_console_apply' failed: Resource temporarily unavailable Apr 2 20:17:54 localhost udevd[641]: udev_event_run: fork of child failed: Resource temporarily unavailable
so, this should be right behaviour now when running out of memory.
regards
roland
----- Original Message ----- From: "Jeff Dike" <[email protected]>
To: "Andrew Morton" <[email protected]>; <[email protected]>
Cc: "LKML" <[email protected]>; "uml-devel" <[email protected]>
Sent: Monday, April 02, 2007 6:50 PM
Subject: [PATCH 4/4] UML - kernel_thread shouldn't panic
Quoted 22 lines
kernel_threadshould just return an error value ondo_forkfailure, not panic.Signed-off-by Jeff Dike <[email protected]>--
arch/um/kernel/process.c| 2 --1 file changed, 2 deletions(-)Index:
linux-2.6.21-mm/arch/um/kernel/process.c
===================================================================
---linux-2.6.21-mm.orig/arch/um/kernel/process.c2007-04-02 11:51:43.000000000 -0400
+++linux-2.6.21-mm/arch/um/kernel/process.c2007-04-02 12:01:00.000000000 -0400arch/um/kernel/process.c +0
-2@@ -97,8 +97,6 @@ int kernel_thread(int (*fn)(void *), voi current->thread.request.u.thread.arg = arg; pid =do_fork (CLONE_VM |CLONE_UNTRACED | flags,0 , ¤t->thread.regs,0 ,NULL ,NULL ); -if (pid <0 ) -panic ("do_fork failed in kernel_thread, errno = %d" , pid);return pid; }