| From: |
| "H. Peter Anvin" <hpa@zytor.com> |
| To: |
| Linux Kernel Mailing List <linux-kernel@vger.kernel.org> |
| Subject: |
| [PATCH 0/6] x86, setup: "glove box" BIOS interrupts |
| Date: |
| Thu, 09 Apr 2009 16:06:33 -0700 |
| Message-ID: |
| <49DE7F79.4030106@zytor.com> |
| Cc: |
| Thomas Gleixner <tglx@linutronix.de>,
"H. Peter Anvin" <hpa@zytor.com> |
| Archive-link: |
| Article, Thread
|
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(-)