Messages in this thread | | | Date | Thu, 09 Apr 2009 16:06:33 -0700 | From | "H. Peter Anvin" <> | Subject | [PATCH 0/6] x86, setup: "glove box" BIOS interrupts |
| |
This is a patchset to "glove box" off BIOS interrupts in the x86 setup code, thus hopefully dealing once and for all with the problems of BIOSes touching registers they shouldn't.
The concept is simple: we manipulate a register image in memory, then swap it in immediately before calling the BIOS, and then switch the register file back. All BIOS interrupts are channeled through this path.
The increase in size is about 8% or ~1.3K in the maximal case.
arch/x86/boot/Makefile | 5 +- arch/x86/boot/a20.c | 9 +- arch/x86/boot/apm.c | 76 +++++-------- arch/x86/boot/bioscall.S | 82 +++++++++++++ arch/x86/boot/boot.h | 48 ++++++++ arch/x86/boot/edd.c | 71 +++++------- arch/x86/boot/header.S | 2 +- arch/x86/boot/main.c | 39 ++++--- arch/x86/boot/mca.c | 27 ++--- arch/x86/boot/memory.c | 81 +++++++------- arch/x86/boot/regs.c | 29 +++++ arch/x86/boot/setup.ld | 6 + arch/x86/boot/tty.c | 52 +++++---- arch/x86/boot/video-bios.c | 27 ++--- arch/x86/boot/video-vesa.c | 137 ++++++++++------------ arch/x86/boot/video-vga.c | 95 +++++++++------ arch/x86/boot/video.c | 42 +++---- arch/x86/boot/video.h | 14 --- arch/x86/kernel/acpi/realmode/Makefile | 2 +- arch/x86/kernel/acpi/realmode/bioscall.S | 1 + arch/x86/kernel/acpi/realmode/regs.c | 1 + 21 files changed, 490 insertions(+), 356 deletions(-)
| |