Re: [PATCH 1/3] KVM: VMX: Use proper types to access const arrays

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

 



On 27 June 2013 15:33, Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote:
> Il 26/06/2013 20:36, Mathias Krause ha scritto:
>> Use a const pointer type instead of casting away the const qualifier
>> from const arrays. Keep the pointer array on the stack, nonetheless.
>> Making it static just increases the object size.
>>
>> Signed-off-by: Mathias Krause <minipli@xxxxxxxxxxxxxx>
>> ---
>>  arch/x86/kvm/vmx.c |   15 +++++++--------
>>  1 file changed, 7 insertions(+), 8 deletions(-)
>>
>> diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
>> index 260a919..7393164 100644
>> --- a/arch/x86/kvm/vmx.c
>> +++ b/arch/x86/kvm/vmx.c
>> @@ -5956,8 +5956,8 @@ static void copy_shadow_to_vmcs12(struct vcpu_vmx *vmx)
>>       unsigned long field;
>>       u64 field_value;
>>       struct vmcs *shadow_vmcs = vmx->nested.current_shadow_vmcs;
>> -     unsigned long *fields = (unsigned long *)shadow_read_write_fields;
>> -     int num_fields = max_shadow_read_write_fields;
>> +     const unsigned long *fields = shadow_read_write_fields;
>> +     const int num_fields = max_shadow_read_write_fields;
>>
>>       vmcs_load(shadow_vmcs);
>>
>> @@ -5986,12 +5986,11 @@ static void copy_shadow_to_vmcs12(struct vcpu_vmx *vmx)
>>
>>  static void copy_vmcs12_to_shadow(struct vcpu_vmx *vmx)
>>  {
>> -     unsigned long *fields[] = {
>> -             (unsigned long *)shadow_read_write_fields,
>> -             (unsigned long *)shadow_read_only_fields
>> +     const unsigned long *fields[] = {
>> +             shadow_read_write_fields,
>> +             shadow_read_only_fields
>>       };
>> -     int num_lists =  ARRAY_SIZE(fields);
>> -     int max_fields[] = {
>> +     const int max_fields[] = {
>>               max_shadow_read_write_fields,
>>               max_shadow_read_only_fields
>>       };
>> @@ -6002,7 +6001,7 @@ static void copy_vmcs12_to_shadow(struct vcpu_vmx *vmx)
>>
>>       vmcs_load(shadow_vmcs);
>>
>> -     for (q = 0; q < num_lists; q++) {
>> +     for (q = 0; q < ARRAY_SIZE(fields); q++) {
>>               for (i = 0; i < max_fields[q]; i++) {
>>                       field = fields[q][i];
>>                       vmcs12_read_any(&vmx->vcpu, field, &field_value);
>>
>
> The "const int" is not particularly useful, but doesn't hurt either.

It's more of a hint for the compiler to take the values verbatim
instead of allocating stack space for them. But it'll probably already
do it even without that "hint".

>
> Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>

Mathias
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux