[PATCH v3 0/2] x86/boot/64: Avoid mapping reserved ranges in early page tables.

From: Steve Wahl
Date: Tue Sep 24 2019 - 17:03:54 EST


This patch set narrows the valid space addressed by the page table
level2_kernel_pgt to only contain ranges checked against the "usable
RAM" list provided by the BIOS.

Prior to this, some larger than needed mappings were occasionally
crossing over into spaces marked reserved, allowing the processor to
access these reserved spaces, which were caught by the hardware and
caused BIOS to halt on our platform (UV).

Changes since v1:

* Cover letter added because there's now two patches.

* Patch 1: Added comment and re-worked changelog text.

* Patch 2: New change requested by Dave Hansen to handle the case that
the mapping of the last PMD page for the kernel image could cross a
reserved region boundary.

Changes since v2:

* Patch 1: Added further inline comments.
* Patch 2: None.

Steve Wahl (2):
x86/boot/64: Make level2_kernel_pgt pages invalid outside kernel area.
x86/boot/64: round memory hole size up to next PMD page.

arch/x86/boot/compressed/misc.c | 25 +++++++++++++++++++------
arch/x86/kernel/head64.c | 22 ++++++++++++++++++++--
2 files changed, 39 insertions(+), 8 deletions(-)

--
2.21.0


--
Steve Wahl, Hewlett Packard Enterprise