diff options
-rw-r--r-- | debian/changelog | 2 | ||||
-rw-r--r-- | debian/patches/05_halt_on_panic_flag.patch | 58 |
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 + } + |