[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] VMX: ensure MSR index enum and array remain in sync



On 20/06/16 12:32, Jan Beulich wrote:
> ... by using dedicated initializers. Also add an ASSERT() to make sure
> unintentional addition of holes to the array gets noticed. Ditch
> MSR_INDEX_SIZE as redundant with VMX_MSR_COUNT.
>
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
>
> --- a/xen/arch/x86/hvm/vmx/vmx.c
> +++ b/xen/arch/x86/hvm/vmx/vmx.c
> @@ -321,20 +321,23 @@ static void vmx_vcpu_destroy(struct vcpu
>  
>  static DEFINE_PER_CPU(struct vmx_msr_state, host_msr_state);
>  
> -static const u32 msr_index[] =
> +static const u32 msr_index[VMX_MSR_COUNT] =
>  {
> -    MSR_LSTAR, MSR_STAR, MSR_SYSCALL_MASK
> +    [VMX_INDEX_MSR_LSTAR]        = MSR_LSTAR,
> +    [VMX_INDEX_MSR_STAR]         = MSR_STAR,
> +    [VMX_INDEX_MSR_SYSCALL_MASK] = MSR_SYSCALL_MASK
>  };
>  
> -#define MSR_INDEX_SIZE (ARRAY_SIZE(msr_index))
> -
>  void vmx_save_host_msrs(void)
>  {
>      struct vmx_msr_state *host_msr_state = &this_cpu(host_msr_state);
> -    int i;
> +    unsigned int i;
>  
> -    for ( i = 0; i < MSR_INDEX_SIZE; i++ )
> +    for ( i = 0; i < VMX_MSR_COUNT; i++ )

I would recommend using ARRAY_SIZE(msr_index) here (as well as dropping
MSR_INDEX_SIZE).  It is better self-documentation, more resilient to
changes in msr_index[] length.

Otherwise, Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.