Re: [PATCH 1/2] x86/CPU: Add native CPUID variants returning a single datum

From: Andy Lutomirski
Date: Wed Dec 28 2016 - 13:12:07 EST


On Wed, Dec 28, 2016 at 3:20 AM, Borislav Petkov <bp@xxxxxxxxx> wrote:
> From: Borislav Petkov <bp@xxxxxxx>
>
> ... similar to the cpuid_<reg>() variants.
>
> Signed-off-by: Borislav Petkov <bp@xxxxxxx>
> ---
> arch/x86/include/asm/processor.h | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h
> index eaf100508c36..27ae83fc37de 100644
> --- a/arch/x86/include/asm/processor.h
> +++ b/arch/x86/include/asm/processor.h
> @@ -219,6 +219,24 @@ static inline void native_cpuid(unsigned int *eax, unsigned int *ebx,
> : "memory");
> }
>
> +#define native_cpuid_reg(reg) \
> +static inline unsigned int native_cpuid_##reg(unsigned int op) \
> +{ \
> + unsigned int eax = (op), ebx, ecx = 0, edx; \

The parens around (op) shouldn't be needed.

> + \
> + native_cpuid(&eax, &ebx, &ecx, &edx); \
> + \
> + return reg; \
> +}
> +
> +/*
> + * Native CPUID functions returning a single datum.
> + */
> +native_cpuid_reg(eax)
> +native_cpuid_reg(ebx)
> +native_cpuid_reg(ecx)
> +native_cpuid_reg(edx)
> +

On a very quick read, it looks like none of your new call sites
actually use the return value at all. Since you also appear to be
consolidating them all, would it make sense to just open-code the
single (?) remaining user?

--Andy