2004-09-14 06:27:42

by Jeff Dike

[permalink] [raw]
Subject: [PATCH] UML - finish the signals across a reboot fix

Due to me not refreshing this patch earlier, the last reboot signals patch was
missing the actual fix.

Signed-off-by: Jeff Dike <[email protected]>

Index: 2.6.9-rc2/arch/um/kernel/main.c
===================================================================
--- 2.6.9-rc2.orig/arch/um/kernel/main.c 2004-09-14 02:03:52.000000000 -0400
+++ 2.6.9-rc2/arch/um/kernel/main.c 2004-09-14 02:03:59.000000000 -0400
@@ -149,7 +149,21 @@

/* Reboot */
if(ret){
+ int err;
+
printf("\n");
+
+ /* Let any pending signals fire, then disable them. This
+ * ensures that they won't be delivered after the exec, when
+ * they are definitely not expected.
+ */
+ unblock_signals();
+ disable_timer();
+ err = deactivate_all_fds();
+ if(err)
+ printf("deactivate_all_fds failed, errno = %d\n",
+ -err);
+
execvp(new_argv[0], new_argv);
perror("Failed to exec kernel");
ret = 1;