Re: [PATCH v6 20/34] x86, mpparse: Use memremap to map the mpf and mpc data

From: Tom Lendacky
Date: Wed Jun 14 2017 - 13:07:16 EST


On 6/14/2017 11:07 AM, Borislav Petkov wrote:
On Wed, Jun 07, 2017 at 02:16:43PM -0500, Tom Lendacky wrote:
The SMP MP-table is built by UEFI and placed in memory in a decrypted
state. These tables are accessed using a mix of early_memremap(),
early_memunmap(), phys_to_virt() and virt_to_phys(). Change all accesses
to use early_memremap()/early_memunmap(). This allows for proper setting
of the encryption mask so that the data can be successfully accessed when
SME is active.

Signed-off-by: Tom Lendacky <thomas.lendacky@xxxxxxx>
---
arch/x86/kernel/mpparse.c | 98 ++++++++++++++++++++++++++++++++-------------
1 file changed, 70 insertions(+), 28 deletions(-)

...

@@ -515,6 +516,12 @@ void __init default_get_smp_config(unsigned int early)
if (acpi_lapic && acpi_ioapic)
return;
+ mpf = early_memremap(mpf_base, sizeof(*mpf));
+ if (!mpf) {
+ pr_err("MPTABLE: mpf early_memremap() failed\n");

If you're going to introduce new prefixes then add:

This isn't new... there are a number of messages issued in this file
with that prefix, so I was just following convention. Changing the
prefix could be a follow-on patch.


#undef pr_fmt
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt

at the beginning of the file so that they all say "mpparse:" instead.

And pls make that message more user-friendly: "Error mapping MP table"
or so.

Can do.

Thanks,
Tom