Messages in this thread Patch in this message |  | | Date | Sun, 30 Dec 2007 22:00:07 +0100 | | From | Ingo Molnar <> | | Subject | Re: [PATCH] x86: provide a DMI based port 0x80 I/O delay override |
| |
* H. Peter Anvin <hpa@zytor.com> wrote:
> Ingo Molnar wrote: >> * Bodo Eggert <7eggert@gmx.de> wrote: >> >>> BTW: The error function in linux-2.6.23/arch/i386/boot/compressed/misc.c >>> uses while(1) without cpu_relax() in order to halt the machine. Is this >>> fixed? Should it be fixed? >> >> this is early bootup so there's no need to be "nice" to other cores or >> sockets - none of them are really running. >> > > It probably should actually HLT, to avoid sucking power, and stressing > the thermal system. We're dead at this point, and the early 486's > which had problems with HLT will lock up - we don't care.
ok. Like the patch below?
Ingo
----------> Subject: x86: hlt on early crash From: Ingo Molnar <mingo@elte.hu>
H. Peter Anvin <hpa@zytor.com> wrote:
> It probably should actually HLT, to avoid sucking power, and stressing > the thermal system. We're dead at this point, and the early 486's > which had problems with HLT will lock up - we don't care.
Signed-off-by: Ingo Molnar <mingo@elte.hu> --- arch/x86/boot/compressed/misc_32.c | 2 +- arch/x86/boot/compressed/misc_64.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
Index: linux-x86.q/arch/x86/boot/compressed/misc_32.c =================================================================== --- linux-x86.q.orig/arch/x86/boot/compressed/misc_32.c +++ linux-x86.q/arch/x86/boot/compressed/misc_32.c @@ -339,7 +339,7 @@ static void error(char *x) putstr(x); putstr("\n\n -- System halted"); - while(1); /* Halt */ + asm("cli; hlt"); /* Halt */ } asmlinkage void decompress_kernel(void *rmode, unsigned long end, Index: linux-x86.q/arch/x86/boot/compressed/misc_64.c =================================================================== --- linux-x86.q.orig/arch/x86/boot/compressed/misc_64.c +++ linux-x86.q/arch/x86/boot/compressed/misc_64.c @@ -338,7 +338,7 @@ static void error(char *x) putstr(x); putstr("\n\n -- System halted"); - while(1); /* Halt */ + asm("cli; hlt"); /* Halt */ } asmlinkage void decompress_kernel(void *rmode, unsigned long heap,
|  |