Skip to content

x86, setup: "glove box" BIOS interrupts

H. Peter Anvin lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest0 of 6 patches 36 repliesIn review

Patches in v1 No applies recorded yet

None of the 6 patches the cover letter announces are in this archive.

Reviews trailers per patch

PatchPavel Machek
SeriesA-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [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(-)