[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?
    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
    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 <>

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 13:46    [W:0.020 / U:2.332 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site