[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <cover.1713212104.git.ashish.kalra@amd.com>
Date: Mon, 15 Apr 2024 21:08:56 +0000
From: Ashish Kalra <Ashish.Kalra@....com>
To: <linux-tip-commits@...r.kernel.org>
CC: <bp@...en8.de>, <thomas.lendacky@....com>, <michael.roth@....com>,
<x86@...nel.org>, <linux-kernel@...r.kernel.org>
Subject: [PATCH v2 0/2] Apply RMP table fixups for kexec.
From: Ashish Kalra <ashish.kalra@....com>
Handle cases where the RMP table placement in the BIOS is
not 2M aligned and then the kexec kernel could try to allocate
from within that chunk and that causes a fatal RMP fault.
Check if RMP table start & end physical range in e820_table
is not aligned to 2MB and in that case use e820__range_update()
to map this range to reserved.
The callback to apply these RMP table fixups needs to be called
after the e820 tables are setup/populated and before the e820 map
has been converted to the standard Linux memory resources and e820 map
is no longer used and modifying it has no effect.
v2:
- Remove overriding e820__memory_setup_default() to invoke
snp_rmptable_e820_fixup() to apply the RMP table fixups.
- This callback snp_rmptable_e820_fixup() is now invoked
after e820__memory_setup() and before e820__reserve_resources().
- Expose e820 API interfaces to update e820_table_kexec and
e820_table_firmware externally.
- snp_rmptable_e820_fixup() now calls these new external API
interfaces to update e820_table_kexec and e820_table_firmware.
Ashish Kalra (2):
x86/e820: Expose API to update e820 kexec and firmware tables
externally.
x86/sev: Add callback to apply RMP table fixups for kexec.
arch/x86/include/asm/e820/api.h | 3 +++
arch/x86/include/asm/sev.h | 2 ++
arch/x86/kernel/e820.c | 7 +++++-
arch/x86/mm/mem_encrypt.c | 3 +++
arch/x86/virt/svm/sev.c | 44 +++++++++++++++++++++++++++++++++
5 files changed, 58 insertions(+), 1 deletion(-)
--
2.34.1
Powered by blists - more mailing lists