Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S264809AbTGCQNx (ORCPT ); Thu, 3 Jul 2003 12:13:53 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S264925AbTGCQNn (ORCPT ); Thu, 3 Jul 2003 12:13:43 -0400 Received: from pcp701542pcs.bowie01.md.comcast.net ([68.50.82.18]:63447 "EHLO lucifer.gotontheinter.net") by vger.kernel.org with ESMTP id S264809AbTGCQL5 (ORCPT ); Thu, 3 Jul 2003 12:11:57 -0400 Subject: [2.4][2.5][Trivial Patch] Bug in i386/kernel/process.c? From: Disconnect To: lkml Content-Type: text/plain Message-Id: <1057249575.2372.18.camel@slappy> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.0 Date: 03 Jul 2003 12:26:15 -0400 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1963 Lines: 54 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 - 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/