Message ID | 20211027024212.64842-1-quic_qiancai@quicinc.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | KVM: arm64: Avoid shadowing a previous local | expand |
On 2021-10-27 03:42, Qian Cai wrote: > It is less-prone to have a different variable name from the one in a > wider > scope. This is also flagged by GCC (W=2): > > In file included from ./include/linux/kvm_host.h:39, > from arch/arm64/kvm/arm.c:12: > arch/arm64/kvm/arm.c: In function 'kvm_arch_vcpu_ioctl_run': > ./arch/arm64/include/asm/kvm_host.h:638:26: warning: declaration of > 'ret' shadows a previous local [-Wshadow] > 638 | typeof(f(__VA_ARGS__)) ret; \ > | ^~~ > arch/arm64/kvm/arm.c:852:9: note: in expansion of macro > 'kvm_call_hyp_ret' > 852 | ret = kvm_call_hyp_ret(__kvm_vcpu_run, vcpu); > | ^~~~~~~~~~~~~~~~ > arch/arm64/kvm/arm.c:773:6: note: shadowed declaration is here > 773 | int ret; > | ^~~ > > Signed-off-by: Qian Cai <quic_qiancai@quicinc.com> > --- > arch/arm64/include/asm/kvm_host.h | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/arch/arm64/include/asm/kvm_host.h > b/arch/arm64/include/asm/kvm_host.h > index 4be8486042a7..4693d84ccd95 100644 > --- a/arch/arm64/include/asm/kvm_host.h > +++ b/arch/arm64/include/asm/kvm_host.h > @@ -635,16 +635,16 @@ void kvm_arm_resume_guest(struct kvm *kvm); > > #define kvm_call_hyp_ret(f, ...) \ > ({ \ > - typeof(f(__VA_ARGS__)) ret; \ > + typeof(f(__VA_ARGS__)) __ret; \ > \ > if (has_vhe()) { \ > - ret = f(__VA_ARGS__); \ > + __ret = f(__VA_ARGS__); \ > isb(); \ > } else { \ > - ret = kvm_call_hyp_nvhe(f, ##__VA_ARGS__); \ > + __ret = kvm_call_hyp_nvhe(f, ##__VA_ARGS__); \ > } \ > \ > - ret; \ > + __ret; \ > }) > #else /* __KVM_NVHE_HYPERVISOR__ */ > #define kvm_call_hyp(f, ...) f(__VA_ARGS__) I don't think this makes much sense. This is bound to eventually clash with another variable, and you're back to square one. Thanks, M.
On 10/27/21 3:34 AM, Marc Zyngier wrote: > I don't think this makes much sense. This is bound to eventually clash > with another variable, and you're back to square one. Yes, perhaps. We don't have a namespace feature in C. Thanks for taking a look, Marc.
diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h index 4be8486042a7..4693d84ccd95 100644 --- a/arch/arm64/include/asm/kvm_host.h +++ b/arch/arm64/include/asm/kvm_host.h @@ -635,16 +635,16 @@ void kvm_arm_resume_guest(struct kvm *kvm); #define kvm_call_hyp_ret(f, ...) \ ({ \ - typeof(f(__VA_ARGS__)) ret; \ + typeof(f(__VA_ARGS__)) __ret; \ \ if (has_vhe()) { \ - ret = f(__VA_ARGS__); \ + __ret = f(__VA_ARGS__); \ isb(); \ } else { \ - ret = kvm_call_hyp_nvhe(f, ##__VA_ARGS__); \ + __ret = kvm_call_hyp_nvhe(f, ##__VA_ARGS__); \ } \ \ - ret; \ + __ret; \ }) #else /* __KVM_NVHE_HYPERVISOR__ */ #define kvm_call_hyp(f, ...) f(__VA_ARGS__)
It is less-prone to have a different variable name from the one in a wider scope. This is also flagged by GCC (W=2): In file included from ./include/linux/kvm_host.h:39, from arch/arm64/kvm/arm.c:12: arch/arm64/kvm/arm.c: In function 'kvm_arch_vcpu_ioctl_run': ./arch/arm64/include/asm/kvm_host.h:638:26: warning: declaration of 'ret' shadows a previous local [-Wshadow] 638 | typeof(f(__VA_ARGS__)) ret; \ | ^~~ arch/arm64/kvm/arm.c:852:9: note: in expansion of macro 'kvm_call_hyp_ret' 852 | ret = kvm_call_hyp_ret(__kvm_vcpu_run, vcpu); | ^~~~~~~~~~~~~~~~ arch/arm64/kvm/arm.c:773:6: note: shadowed declaration is here 773 | int ret; | ^~~ Signed-off-by: Qian Cai <quic_qiancai@quicinc.com> --- arch/arm64/include/asm/kvm_host.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)