On Mon, Dec 27, 2021 at 07:31:54PM -0800, Michael Kelley wrote: > The percpu variables hyperv_pcpu_input_arg and hyperv_pcpu_output_arg > have been incorrectly defined since their inception. The __percpu > qualifier should be associated with the void * (i.e., a pointer), not > with the target of the pointer. This distinction makes no difference > to gcc and the generated code, but sparse correctly complains. Fix > the definitions in the interest of general correctness in addition > to making sparse happy. > > No functional change. > > Reported-by: kernel test robot <lkp@xxxxxxxxx> > Signed-off-by: Michael Kelley <mikelley@xxxxxxxxxxxxx> Good catch. I failed to interpret sparse's complaints. Both patches queued to hyperv-next. Thanks. > --- > drivers/hv/hv_common.c | 4 ++-- > include/asm-generic/mshyperv.h | 4 ++-- > 2 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/hv/hv_common.c b/drivers/hv/hv_common.c > index 7be173a..7477e5a 100644 > --- a/drivers/hv/hv_common.c > +++ b/drivers/hv/hv_common.c > @@ -44,10 +44,10 @@ > u32 hv_max_vp_index; > EXPORT_SYMBOL_GPL(hv_max_vp_index); > > -void __percpu **hyperv_pcpu_input_arg; > +void * __percpu *hyperv_pcpu_input_arg; > EXPORT_SYMBOL_GPL(hyperv_pcpu_input_arg); > > -void __percpu **hyperv_pcpu_output_arg; > +void * __percpu *hyperv_pcpu_output_arg; > EXPORT_SYMBOL_GPL(hyperv_pcpu_output_arg); > > /* > diff --git a/include/asm-generic/mshyperv.h b/include/asm-generic/mshyperv.h > index 3e2248ac..95b7888 100644 > --- a/include/asm-generic/mshyperv.h > +++ b/include/asm-generic/mshyperv.h > @@ -49,8 +49,8 @@ struct ms_hyperv_info { > }; > extern struct ms_hyperv_info ms_hyperv; > > -extern void __percpu **hyperv_pcpu_input_arg; > -extern void __percpu **hyperv_pcpu_output_arg; > +extern void * __percpu *hyperv_pcpu_input_arg; > +extern void * __percpu *hyperv_pcpu_output_arg; > > extern u64 hv_do_hypercall(u64 control, void *inputaddr, void *outputaddr); > extern u64 hv_do_fast_hypercall8(u16 control, u64 input8); > -- > 1.8.3.1 >