Re: [RFC PATCH v3 04/20] x86: Handle reduction in physical address size with SME

From: Joerg Roedel
Date: Tue Nov 15 2016 - 07:10:56 EST


On Wed, Nov 09, 2016 at 06:35:13PM -0600, Tom Lendacky wrote:
> +/*
> + * AMD Secure Memory Encryption (SME) can reduce the size of the physical
> + * address space if it is enabled, even if memory encryption is not active.
> + * Adjust x86_phys_bits if SME is enabled.
> + */
> +static void phys_bits_adjust(struct cpuinfo_x86 *c)
> +{

Better call this function amd_sme_phys_bits_adjust(). This name makes it
clear at the call-site why it is there and what it does.

> + u32 eax, ebx, ecx, edx;
> + u64 msr;
> +
> + if (c->x86_vendor != X86_VENDOR_AMD)
> + return;
> +
> + if (c->extended_cpuid_level < 0x8000001f)
> + return;
> +
> + /* Check for SME feature */
> + cpuid(0x8000001f, &eax, &ebx, &ecx, &edx);
> + if (!(eax & 0x01))
> + return;

Maybe add a comment here why you can't use cpu_has (yet).