Re: [PATCH V2 3/4] x86/kvm: Resolve shadow warnings in macro expansion

Paolo Bonzini
2014-07-31T11:51:04Z

Il 30/07/2014 23:19, Mark D Rustad ha scritto:
> Resolve shadow warnings that appear in W=2 builds. Instead of
> using ret to hold the return pointer, save the length in a new
> variable saved_len and compute the pointer on exit. This also
> resolves a very technical error, in that ret was declared as
> a const char *, when it really was a char * const, which
> theoretically could have allowed the compiler to do something
> wrong.
>
> Signed-off-by: Mark Rustad <mark.d.rustad@intel.com>
> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
>
> ---
> Changes in V2:
> - Instead of renaming all inner variables, just delete the
> ret variable in favor of the new saved_len variable.
> ---
> arch/x86/kvm/mmutrace.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/x86/kvm/mmutrace.h b/arch/x86/kvm/mmutrace.h
> index 9d2e0ffcb190..5aaf35641768 100644
> --- a/arch/x86/kvm/mmutrace.h
> +++ b/arch/x86/kvm/mmutrace.h
> @@ -22,7 +22,7 @@
> __entry->unsync = sp->unsync;
>
> #define KVM_MMU_PAGE_PRINTK() ({ \
> - const char *ret = p->buffer + p->len; \
> + const u32 saved_len = p->len; \
> static const char *access_str[] = { \
> "---", "--x", "w--", "w-x", "-u-", "-ux", "wu-", "wux" \
> }; \
> @@ -41,7 +41,7 @@
> role.nxe ? "" : "!", \
> __entry->root_count, \
> __entry->unsync ? "unsync" : "sync", 0); \
> - ret; \
> + p->buffer + saved_len; \
> })
>
> #define kvm_mmu_trace_pferr_flags \
>

Applying this patch, thanks.

Paolo