On 三, 2019-01-30 at 21:37 +0800, Zhang Rui wrote: > On 三, 2019-01-30 at 10:59 +0100, Petr Mladek wrote: > > > > On Sat 2019-01-19 17:15:23, Luc Van Oostenryck wrote: > > > > > > > > > This variable is declared as: > > > static struct powerclamp_worker_data * __percpu worker_data; > > > In other words, a percpu pointer to struct ... > > > > > > But this variable not used like so but as a pointer to a percpu > > > struct powerclamp_worker_data. > > > > > > So fix the declaration as: > > > static struct powerclamp_worker_data __percpu *worker_data; > > > > > > This also quiets Sparse's warnings from __verify_pcpu_ptr(), > > > like: > > > 494:49: warning: incorrect type in initializer (different > > > address > > > spaces) > > > 494:49: expected void const [noderef] <asn:3> *__vpp_verify > > > 494:49: got struct powerclamp_worker_data * > > > > > > Signed-off-by: Luc Van Oostenryck <[email protected]> > > > --- > > > drivers/thermal/intel/intel_powerclamp.c | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > diff --git a/drivers/thermal/intel/intel_powerclamp.c > > > b/drivers/thermal/intel/intel_powerclamp.c > > > index 7571f7c2e..c7cba20bd 100644 > > > --- a/drivers/thermal/intel/intel_powerclamp.c > > > +++ b/drivers/thermal/intel/intel_powerclamp.c > > > @@ -101,7 +101,7 @@ struct powerclamp_worker_data { > > > bool clamping; > > > }; > > > > > > -static struct powerclamp_worker_data * __percpu worker_data; > > > +static struct powerclamp_worker_data __percpu * worker_data; > > Makes perfect sense. I wonder why I wrote it in the wrong order. > > > > Reviewed-by: Petr Mladek <[email protected]> > > > applied and queued for next -rc. > well, just with a minor change to get rid of checkpatch warning.
ERROR: "foo * bar" should be "foo *bar" #121: FILE: drivers/thermal/intel/intel_powerclamp.c:104: +static struct powerclamp_worker_data __percpu * worker_data; total: 1 errors, 0 warnings, 8 lines checked thanks, rui > thanks, > rui > > > > > Best Regards, > > Petr

