Skip to contentSkip to conversation

UML - kernel_thread shouldn't panic

PATCH In review Jeff Dike 2 participants 2 messages Apr 2, 2007 User-mode Linux (UML)

lore
Share & tools
lore

Jeff Dike

author
#0 lore raw

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
Index: linux-2.6.21-mm/arch/um/kernel/process.c
===================================================================
@@ -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,
 		      &current->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

#1 lore raw

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_thread should just return an error value on do_fork failure, not panic.

--
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.c 2007-04-02 11:51:43.000000000 -0400
+++ linux-2.6.21-mm/arch/um/kernel/process.c 2007-04-02 12:01:00.000000000 -0400

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,
       &current->thread.regs, 0, NULL, NULL);
- if(pid < 0)
- panic("do_fork failed in kernel_thread, errno = %d", pid);
 return pid;
 }