lkml.org 
[lkml]   [2003]   [Jul]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Subject[2.4][2.5][Trivial Patch] Bug in i386/kernel/process.c?
From
Date
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/

\
 
 \ /
  Last update: 2005-03-22 13:46    [W:0.203 / U:0.324 seconds]
©2003-2014 Jasper Spaans. Advertise on this site