Messages in this thread Patch in this message | | | Subject | [2.4][2.5][Trivial Patch] Bug in i386/kernel/process.c? | From | Disconnect <> | Date | 03 Jul 2003 12:26:15 -0400 |
| |
I was poking into how to force a warm boot (found it easily enough) and started reading process.c, where the details live.
We have: static int reboot_mode; int reboot_thru_bios;
static int __init reboot_setup(char *str) { ...set reboot_mode/reboot_thru_bios according to reboot=... } __setup("reboot=", reboot_setup);
Farther down: /* Write 0x1234 to absolute memory location 0x472. The BIOS reads this on booting to tell it to "Bypass memory test (also warm boot)". This seems like a fairly standard thing that gets set by REBOOT.COM programs, and the previous reset routine did this too. */ *((unsigned short *)0x472) = reboot_mode; (similar code farther down in !reboot_thru_bios)
....but reboot_mode doesn't seem to be initialized if you don't set it via reboot=...? (Same for reboot_thru_bios)
A simple patch to use the defaults (according to the code comments) is below; if this is right please push accordingly:
Its against 2.4 but should apply to 2.5 as well. --- build-dis5-final/arch/i386/kernel/process.c.orig 2003-07-03 12:15:36.000000000 -0400 +++ build-dis5-final/arch/i386/kernel/process.c 2003-07-03 12:16:46.000000000 -0400 @@ -152,8 +152,8 @@ __setup("idle=", idle_setup); static long no_idt[2]; -static int reboot_mode; -int reboot_thru_bios; +static int reboot_mode = 0x1234; +int reboot_thru_bios = 1; #ifdef CONFIG_SMP int reboot_smp = 0; -- Disconnect <lkml@sigkill.net>
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |