summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog2
-rw-r--r--debian/patches/05_halt_on_panic_flag.patch58
2 files changed, 60 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
index 8d44f5f..5c75971 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -13,6 +13,8 @@ gnumach (1:20060201-1) UNRELEASED; urgency=low
- debian/patches/42_disable_ioperm.patch: Likewise.
- debian/patches/45_io_per_task.patch: Likewise.
- debian/patches/90_autoconf_autogen.patch: Likewise.
+ * Fix -H kernel command line argument to halt on panic. (Closes: #184624)
+ Thanks to Soeren D. Schulze <soeren.d.schulze@gmx.de>.
-- Guillem Jover <guillem@debian.org> Wed, 1 Feb 2006 23:21:59 +0200
diff --git a/debian/patches/05_halt_on_panic_flag.patch b/debian/patches/05_halt_on_panic_flag.patch
new file mode 100644
index 0000000..075af1a
--- /dev/null
+++ b/debian/patches/05_halt_on_panic_flag.patch
@@ -0,0 +1,58 @@
+#DPATCHLEVEL=0
+
+2005-12-29 Soeren D. Schulze <soeren.d.schulze@gmx.de>
+
+ * i386/i386at/model_dep.c (reboot_on_panic) [!MACH_KBD]: New variable.
+ (c_boot_entry) [!MACH_KBD]: Set reboot_on_panic to 0 if kernel_cmdline
+ contains '-H'.
+ * kern/debug.c (panic): Call halt_all_cpus with reboot_on_panic as
+ argument.
+
+
+--- i386/i386at/model_dep.c 2004-11-29 06:34:51.000000000 +0100
++++ i386/i386at/model_dep.c 2005-12-29 16:01:03.000000000 +0100
+@@ -108,6 +108,10 @@
+
+ int rebootflag = 0; /* exported to kdintr */
+
++#if ! MACH_KBD
++boolean_t reboot_on_panic = 1;
++#endif
++
+ /* XX interrupt stack pointer and highwater mark, for locore.S. */
+ vm_offset_t int_stack_top, int_stack_high;
+
+@@ -366,6 +370,11 @@
+ cninit(); /* need console for debugger */
+ Debugger();
+ }
++#else
++ if (strstr (kernel_cmdline, "-H "))
++ {
++ reboot_on_panic = 0;
++ }
+ #endif /* MACH_KDB */
+
+ machine_slot[0].is_cpu = TRUE;
+--- kern/debug.c 2000-07-23 02:34:12.000000000 +0200
++++ kern/debug.c 2005-12-29 15:21:46.000000000 +0100
+@@ -121,6 +121,10 @@
+ }
+ }
+
++#if ! MACH_KBD
++extern boolean_t reboot_on_panic;
++#endif
++
+ /*VARARGS1*/
+ void
+ panic(const char *s, ...)
+@@ -168,7 +172,7 @@
+ #if MACH_KDB
+ Debugger("panic");
+ #else
+- halt_all_cpus (1);
++ halt_all_cpus (reboot_on_panic);
+ #endif
+ }
+