[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [XEN PATCH v2 07/13] x86/vmx: fix violations of MISRA C:2012 Rule 7.2
On Wed, 5 Jul 2023, Simone Ballarin wrote: > From: Gianluca Luparini <gianluca.luparini@xxxxxxxxxxx> > > The xen sources contains violations of MISRA C:2012 Rule 7.2 whose > headline states: > "A 'u' or 'U' suffix shall be applied to all integer constants > that are represented in an unsigned type". > > Add the 'U' suffix to integers literals with unsigned type and also to other > literals used in the same contexts or near violations, when their positive > nature is immediately clear. The latter changes are done for the sake of > uniformity. > > Signed-off-by: Simone Ballarin <simone.ballarin@xxxxxxxxxxx> > Signed-off-by: Gianluca Luparini <gianluca.luparini@xxxxxxxxxxx> Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx> > --- > Changes in v2: > - minor change to commit title > - change commit message > - remove unnecessary changes in 'vpmu_intel.c' and 'vmx.h' > - add 'ULL' suffix in 'vpmu_intel.c' > - add zero-padding to constants in 'vmx.h' > - add missing 'U' in 'vmx.h' > --- > xen/arch/x86/cpu/vpmu_intel.c | 2 +- > xen/arch/x86/hvm/vmx/vmcs.c | 6 ++--- > xen/arch/x86/hvm/vmx/vvmx.c | 12 ++++----- > xen/arch/x86/include/asm/hvm/vmx/vmcs.h | 6 ++--- > xen/arch/x86/include/asm/hvm/vmx/vmx.h | 34 ++++++++++++------------- > 5 files changed, 30 insertions(+), 30 deletions(-) > > diff --git a/xen/arch/x86/cpu/vpmu_intel.c b/xen/arch/x86/cpu/vpmu_intel.c > index bda5d511ac..890c279310 100644 > --- a/xen/arch/x86/cpu/vpmu_intel.c > +++ b/xen/arch/x86/cpu/vpmu_intel.c > @@ -946,7 +946,7 @@ const struct arch_vpmu_ops *__init core2_vpmu_init(void) > fixed_counters_mask = ~((1ull << core2_get_bitwidth_fix_count()) - 1); > global_ctrl_mask = ~((((1ULL << fixed_pmc_cnt) - 1) << 32) | > ((1ULL << arch_pmc_cnt) - 1)); > - global_ovf_ctrl_mask = ~(0xC000000000000000 | > + global_ovf_ctrl_mask = ~(0xC000000000000000ULL | > (((1ULL << fixed_pmc_cnt) - 1) << 32) | > ((1ULL << arch_pmc_cnt) - 1)); > if ( version > 2 ) > diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c > index b209563625..d5a2b847a9 100644 > --- a/xen/arch/x86/hvm/vmx/vmcs.c > +++ b/xen/arch/x86/hvm/vmx/vmcs.c > @@ -911,7 +911,7 @@ void vmx_clear_msr_intercept(struct vcpu *v, unsigned int > msr, > if ( type & VMX_MSR_W ) > clear_bit(msr, msr_bitmap->write_low); > } > - else if ( (msr >= 0xc0000000) && (msr <= 0xc0001fff) ) > + else if ( (msr >= 0xc0000000U) && (msr <= 0xc0001fffU) ) > { > msr &= 0x1fff; > if ( type & VMX_MSR_R ) > @@ -939,7 +939,7 @@ void vmx_set_msr_intercept(struct vcpu *v, unsigned int > msr, > if ( type & VMX_MSR_W ) > set_bit(msr, msr_bitmap->write_low); > } > - else if ( (msr >= 0xc0000000) && (msr <= 0xc0001fff) ) > + else if ( (msr >= 0xc0000000U) && (msr <= 0xc0001fffU) ) > { > msr &= 0x1fff; > if ( type & VMX_MSR_R ) > @@ -957,7 +957,7 @@ bool vmx_msr_is_intercepted(struct vmx_msr_bitmap > *msr_bitmap, > if ( msr <= 0x1fff ) > return test_bit(msr, is_write ? msr_bitmap->write_low > : msr_bitmap->read_low); > - else if ( (msr >= 0xc0000000) && (msr <= 0xc0001fff) ) > + else if ( (msr >= 0xc0000000U) && (msr <= 0xc0001fffU) ) > return test_bit(msr & 0x1fff, is_write ? msr_bitmap->write_high > : msr_bitmap->read_high); > else > diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c > index 1034534c97..f59de0f124 100644 > --- a/xen/arch/x86/hvm/vmx/vvmx.c > +++ b/xen/arch/x86/hvm/vmx/vvmx.c > @@ -257,14 +257,14 @@ uint64_t get_vvmcs_virtual(void *vvmcs, uint32_t > vmcs_encoding) > > switch ( enc.width ) { > case VVMCS_WIDTH_16: > - res &= 0xffff; > + res &= 0xffffU; > break; > case VVMCS_WIDTH_64: > if ( enc.access_type ) > res >>= 32; > break; > case VVMCS_WIDTH_32: > - res &= 0xffffffff; > + res &= 0xffffffffU; > break; > case VVMCS_WIDTH_NATURAL: > default: > @@ -311,19 +311,19 @@ void set_vvmcs_virtual(void *vvmcs, uint32_t > vmcs_encoding, uint64_t val) > > switch ( enc.width ) { > case VVMCS_WIDTH_16: > - res = val & 0xffff; > + res = val & 0xffffU; > break; > case VVMCS_WIDTH_64: > if ( enc.access_type ) > { > - res &= 0xffffffff; > + res &= 0xffffffffU; > res |= val << 32; > } > else > res = val; > break; > case VVMCS_WIDTH_32: > - res = val & 0xffffffff; > + res = val & 0xffffffffU; > break; > case VVMCS_WIDTH_NATURAL: > default: > @@ -2307,7 +2307,7 @@ int nvmx_msr_read_intercept(unsigned int msr, u64 > *msr_content) > break; > case MSR_IA32_VMX_CR0_FIXED1: > /* allow 0-settings for all bits */ > - data = 0xffffffff; > + data = 0xffffffffU; > break; > case MSR_IA32_VMX_CR4_FIXED0: > /* VMXE bit must be 1 in VMX operation */ > diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h > b/xen/arch/x86/include/asm/hvm/vmx/vmcs.h > index d07fcb2bc9..4acf3970f5 100644 > --- a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h > +++ b/xen/arch/x86/include/asm/hvm/vmx/vmcs.h > @@ -207,7 +207,7 @@ void vmx_vmcs_reload(struct vcpu *v); > #define CPU_BASED_ACTIVATE_MSR_BITMAP 0x10000000 > #define CPU_BASED_MONITOR_EXITING 0x20000000 > #define CPU_BASED_PAUSE_EXITING 0x40000000 > -#define CPU_BASED_ACTIVATE_SECONDARY_CONTROLS 0x80000000 > +#define CPU_BASED_ACTIVATE_SECONDARY_CONTROLS 0x80000000U > extern u32 vmx_cpu_based_exec_control; > > #define PIN_BASED_EXT_INTR_MASK 0x00000001 > @@ -257,7 +257,7 @@ extern u32 vmx_vmentry_control; > #define SECONDARY_EXEC_XSAVES 0x00100000 > #define SECONDARY_EXEC_TSC_SCALING 0x02000000 > #define SECONDARY_EXEC_BUS_LOCK_DETECTION 0x40000000 > -#define SECONDARY_EXEC_NOTIFY_VM_EXITING 0x80000000 > +#define SECONDARY_EXEC_NOTIFY_VM_EXITING 0x80000000U > extern u32 vmx_secondary_exec_control; > > #define VMX_EPT_EXEC_ONLY_SUPPORTED 0x00000001 > @@ -346,7 +346,7 @@ extern u64 vmx_ept_vpid_cap; > #define cpu_has_vmx_notify_vm_exiting \ > (vmx_secondary_exec_control & SECONDARY_EXEC_NOTIFY_VM_EXITING) > > -#define VMCS_RID_TYPE_MASK 0x80000000 > +#define VMCS_RID_TYPE_MASK 0x80000000U > > /* GUEST_INTERRUPTIBILITY_INFO flags. */ > #define VMX_INTR_SHADOW_STI 0x00000001 > diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmx.h > b/xen/arch/x86/include/asm/hvm/vmx/vmx.h > index 36c108d879..6642688e1d 100644 > --- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h > +++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h > @@ -136,7 +136,7 @@ static inline void pi_clear_sn(struct pi_desc *pi_desc) > /* > * Exit Reasons > */ > -#define VMX_EXIT_REASONS_FAILED_VMENTRY 0x80000000 > +#define VMX_EXIT_REASONS_FAILED_VMENTRY 0x80000000U > #define VMX_EXIT_REASONS_BUS_LOCK (1u << 26) > > #define EXIT_REASON_EXCEPTION_NMI 0 > @@ -208,12 +208,12 @@ static inline void pi_clear_sn(struct pi_desc *pi_desc) > * Note INTR_INFO_NMI_UNBLOCKED_BY_IRET is also used with Exit Qualification > * field for EPT violations, PML full and SPP-related event vmexits. > */ > -#define INTR_INFO_VECTOR_MASK 0xff /* 7:0 */ > -#define INTR_INFO_INTR_TYPE_MASK 0x700 /* 10:8 */ > -#define INTR_INFO_DELIVER_CODE_MASK 0x800 /* 11 */ > -#define INTR_INFO_NMI_UNBLOCKED_BY_IRET 0x1000 /* 12 */ > -#define INTR_INFO_VALID_MASK 0x80000000 /* 31 */ > -#define INTR_INFO_RESVD_BITS_MASK 0x7ffff000 > +#define INTR_INFO_VECTOR_MASK 0x000000ffU /* 7:0 */ > +#define INTR_INFO_INTR_TYPE_MASK 0x00000700U /* 10:8 */ > +#define INTR_INFO_DELIVER_CODE_MASK 0x00000800U /* 11 */ > +#define INTR_INFO_NMI_UNBLOCKED_BY_IRET 0x00001000U /* 12 */ > +#define INTR_INFO_VALID_MASK 0x80000000U /* 31 */ > +#define INTR_INFO_RESVD_BITS_MASK 0x7ffff000U > > /* > * Exit Qualifications for NOTIFY VM EXIT > @@ -246,15 +246,15 @@ typedef union cr_access_qual { > /* > * Access Rights > */ > -#define X86_SEG_AR_SEG_TYPE 0xf /* 3:0, segment type */ > -#define X86_SEG_AR_DESC_TYPE (1u << 4) /* 4, descriptor type */ > -#define X86_SEG_AR_DPL 0x60 /* 6:5, descriptor privilege > level */ > -#define X86_SEG_AR_SEG_PRESENT (1u << 7) /* 7, segment present */ > -#define X86_SEG_AR_AVL (1u << 12) /* 12, available for system > software */ > -#define X86_SEG_AR_CS_LM_ACTIVE (1u << 13) /* 13, long mode active (CS only) > */ > -#define X86_SEG_AR_DEF_OP_SIZE (1u << 14) /* 14, default operation size */ > -#define X86_SEG_AR_GRANULARITY (1u << 15) /* 15, granularity */ > -#define X86_SEG_AR_SEG_UNUSABLE (1u << 16) /* 16, segment unusable */ > +#define X86_SEG_AR_SEG_TYPE 0xfU /* 3:0, segment type */ > +#define X86_SEG_AR_DESC_TYPE (1U << 4) /* 4, descriptor type */ > +#define X86_SEG_AR_DPL 0x60U /* 6:5, descriptor privilege > level */ > +#define X86_SEG_AR_SEG_PRESENT (1U << 7) /* 7, segment present */ > +#define X86_SEG_AR_AVL (1U << 12) /* 12, available for system > software */ > +#define X86_SEG_AR_CS_LM_ACTIVE (1U << 13) /* 13, long mode active (CS only) > */ > +#define X86_SEG_AR_DEF_OP_SIZE (1U << 14) /* 14, default operation size */ > +#define X86_SEG_AR_GRANULARITY (1U << 15) /* 15, granularity */ > +#define X86_SEG_AR_SEG_UNUSABLE (1U << 16) /* 16, segment unusable */ > > #define VMCALL_OPCODE ".byte 0x0f,0x01,0xc1\n" > #define VMCLEAR_OPCODE ".byte 0x66,0x0f,0xc7\n" /* reg/opcode: /6 */ > @@ -606,7 +606,7 @@ static inline void vmx_pi_hooks_assign(struct domain *d) > {} > static inline void vmx_pi_hooks_deassign(struct domain *d) {} > #endif > > -#define APIC_INVALID_DEST 0xffffffff > +#define APIC_INVALID_DEST 0xffffffffU > > /* EPT violation qualifications definitions */ > typedef union ept_qual { > -- > 2.41.0 >
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |