Re: [PATCH v5 17/19] KVM: VMX: Use VMX_FEATURE_* flags to define VMCS control bits

From: Borislav Petkov
Date: Mon Jan 13 2020 - 13:32:40 EST


On Fri, Dec 20, 2019 at 08:45:11PM -0800, Sean Christopherson wrote:
> Define the VMCS execution control flags (consumed by KVM) using their
> associated VMX_FEATURE_* to provide a strong hint that new VMX features
> are expected to be added to VMX_FEATURE and considered for reporting via
> /proc/cpuinfo.
>
> No functional change intended.
>
> Signed-off-by: Sean Christopherson <sean.j.christopherson@xxxxxxxxx>
> ---
> arch/x86/include/asm/vmx.h | 105 +++++++++++++++++++------------------
> 1 file changed, 55 insertions(+), 50 deletions(-)
>
> diff --git a/arch/x86/include/asm/vmx.h b/arch/x86/include/asm/vmx.h
> index 1835767aa335..9fbba31be825 100644
> --- a/arch/x86/include/asm/vmx.h
> +++ b/arch/x86/include/asm/vmx.h
> @@ -15,67 +15,70 @@
> #include <linux/bitops.h>
> #include <linux/types.h>
> #include <uapi/asm/vmx.h>
> +#include <asm/vmxfeatures.h>
> +
> +#define VMCS_CONTROL_BIT(x) BIT(VMX_FEATURE_##x & 0x1f)
>
> /*
> * Definitions of Primary Processor-Based VM-Execution Controls.
> */
> -#define CPU_BASED_VIRTUAL_INTR_PENDING 0x00000004
> -#define CPU_BASED_USE_TSC_OFFSETING 0x00000008
> -#define CPU_BASED_HLT_EXITING 0x00000080
> -#define CPU_BASED_INVLPG_EXITING 0x00000200
> -#define CPU_BASED_MWAIT_EXITING 0x00000400
> -#define CPU_BASED_RDPMC_EXITING 0x00000800
> -#define CPU_BASED_RDTSC_EXITING 0x00001000
> -#define CPU_BASED_CR3_LOAD_EXITING 0x00008000
> -#define CPU_BASED_CR3_STORE_EXITING 0x00010000
> -#define CPU_BASED_CR8_LOAD_EXITING 0x00080000
> -#define CPU_BASED_CR8_STORE_EXITING 0x00100000
> -#define CPU_BASED_TPR_SHADOW 0x00200000
> -#define CPU_BASED_VIRTUAL_NMI_PENDING 0x00400000
> -#define CPU_BASED_MOV_DR_EXITING 0x00800000
> -#define CPU_BASED_UNCOND_IO_EXITING 0x01000000
> -#define CPU_BASED_USE_IO_BITMAPS 0x02000000
> -#define CPU_BASED_MONITOR_TRAP_FLAG 0x08000000
> -#define CPU_BASED_USE_MSR_BITMAPS 0x10000000
> -#define CPU_BASED_MONITOR_EXITING 0x20000000
> -#define CPU_BASED_PAUSE_EXITING 0x40000000
> -#define CPU_BASED_ACTIVATE_SECONDARY_CONTROLS 0x80000000
> +#define CPU_BASED_VIRTUAL_INTR_PENDING VMCS_CONTROL_BIT(VIRTUAL_INTR_PENDING)
> +#define CPU_BASED_USE_TSC_OFFSETING VMCS_CONTROL_BIT(TSC_OFFSETTING)

checkpatch correctly complains here:

WARNING: 'OFFSETING' may be misspelled - perhaps 'OFFSETTING'?
#80: FILE: arch/x86/include/asm/vmx.h:26:
+#define CPU_BASED_USE_TSC_OFFSETING VMCS_CONTROL_BIT(TSC_OFFSETTING)

and VMX_FEATURE_TSC_OFFSETTING is correct.

Should I fix it up to CPU_BASED_USE_TSC_OFFSETTING while applying?

--
Regards/Gruss,
Boris.

https://people.kernel.org/tglx/notes-about-netiquette