From a8adcf8408dac43057de3615064c66a4a23c5def Mon Sep 17 00:00:00 2001 From: Micah Dowty Date: Fri, 23 Oct 2009 23:58:13 +0000 Subject: [PATCH] Update to latest Metalkit sources. Includes a fix for BIOS triple-fault issues. --- lib/metalkit/bios.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/metalkit/bios.c b/lib/metalkit/bios.c index b736850..7d517c6 100644 --- a/lib/metalkit/bios.c +++ b/lib/metalkit/bios.c @@ -157,6 +157,14 @@ BIOSCallInternal(void) asm volatile("BIOSTrampolineVector: \n" "int $0xFF"); + /* + * Some BIOS routines will turn interrupts back on. If an interrupt + * occurs while we're partway through our 16-to-32 transition + * below, any interrupts will cause the ISR to fault, so we must + * make sure interrupts are still off. + */ + asm volatile("cli"); + /* * Push Regs back onto the stack. */