On Jul 25, 2014, at 7:06 AM, Paolo Bonzini <pbonz...@redhat.com> wrote:

> Il 25/07/2014 15:27, Jeff Kirsher ha scritto:
>> From: Mark Rustad <mark.d.rus...@intel.com>
>> 
>> Resolve shadow warnings that appear in W=2 builds. In this case,
>> a macro declared an inner local variable with the same name as an
>> outer one. This can be a serious hazard in the event that the outer
>> variable is ever passed as a parameter, as the inner variable will
>> be referenced instead of what was intended. This macro doesn't have
>> any parameters - at this time - but prepend an _ to all of the
>> macro-declared variables as is the custom, to resolve the warnings
>> and eliminate any future hazard.
>> 
>> Signed-off-by: Mark Rustad <mark.d.rus...@intel.com>
>> Signed-off-by: Jeff Kirsher <jeffrey.t.kirs...@intel.com>
>> ---
>> arch/x86/kvm/mmutrace.h | 24 ++++++++++++------------
>> 1 file changed, 12 insertions(+), 12 deletions(-)
>> 
>> diff --git a/arch/x86/kvm/mmutrace.h b/arch/x86/kvm/mmutrace.h
>> index 9d2e0ff..2d8d00c 100644
>> --- a/arch/x86/kvm/mmutrace.h
>> +++ b/arch/x86/kvm/mmutrace.h
>> @@ -22,26 +22,26 @@
>>      __entry->unsync = sp->unsync;
>> 
>> #define KVM_MMU_PAGE_PRINTK() ({                                     \
>> -    const char *ret = p->buffer + p->len;                           \
>> -    static const char *access_str[] = {                             \
>> +    const char *_ret = p->buffer + p->len;                          \
>> +    static const char *_access_str[] = {                            \
>>              "---", "--x", "w--", "w-x", "-u-", "-ux", "wu-", "wux"  \
>>      };                                                              \
>> -    union kvm_mmu_page_role role;                                   \
>> +    union kvm_mmu_page_role _role;                                  \
>>                                                                      \
>> -    role.word = __entry->role;                                      \
>> +    _role.word = __entry->role;                                     \
>>                                                                      \
>>      trace_seq_printf(p, "sp gen %lx gfn %llx %u%s q%u%s %s%s"       \
>>                       " %snxe root %u %s%c", __entry->mmu_valid_gen, \
>> -                     __entry->gfn, role.level,                      \
>> -                     role.cr4_pae ? " pae" : "",                    \
>> -                     role.quadrant,                                 \
>> -                     role.direct ? " direct" : "",                  \
>> -                     access_str[role.access],                       \
>> -                     role.invalid ? " invalid" : "",                \
>> -                     role.nxe ? "" : "!",                           \
>> +                     __entry->gfn, _role.level,                     \
>> +                     _role.cr4_pae ? " pae" : "",                   \
>> +                     _role.quadrant,                                \
>> +                     _role.direct ? " direct" : "",                 \
>> +                     _access_str[_role.access],                     \
>> +                     _role.invalid ? " invalid" : "",               \
>> +                     _role.nxe ? "" : "!",                          \
>>                       __entry->root_count,                           \
>>                       __entry->unsync ? "unsync" : "sync", 0);       \
>> -    ret;                                                            \
>> +    _ret;                                                           \
>>              })
>> 
>> #define kvm_mmu_trace_pferr_flags       \
>> 
> 
> I think this unnecessarily uglifies the code, so I am not applying it.
> Gleb, what do you think?

Would you consider a version that only changes ret to _ret? That would be 
enough to resolve the warning. I only did the other variables because it seemed 
to be a best practice for these inner block declarations.

Hmmm. It seems like p should really be a parameter to this macro.

-- 
Mark Rustad, Networking Division, Intel Corporation

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

Reply via email to