On Mon, 2026-03-23 at 11:22 +0100, Antonio Borneo wrote: > Sparse triggers the following warnings: > > drivers/hwspinlock/hwspinlock_core.c:392:9: warning: incorrect type in > assignment (different address spaces) > drivers/hwspinlock/hwspinlock_core.c:392:9: expected void **slot > drivers/hwspinlock/hwspinlock_core.c:392:9: got void [noderef] __rcu ** > drivers/hwspinlock/hwspinlock_core.c:392:9: warning: incorrect type in > assignment (different address spaces) > drivers/hwspinlock/hwspinlock_core.c:392:9: expected void **slot > drivers/hwspinlock/hwspinlock_core.c:392:9: got void [noderef] __rcu ** > drivers/hwspinlock/hwspinlock_core.c:393:48: warning: incorrect type in > argument 1 (different address spaces) > drivers/hwspinlock/hwspinlock_core.c:393:48: expected void [noderef] __rcu > **slot > drivers/hwspinlock/hwspinlock_core.c:393:48: got void **slot > drivers/hwspinlock/hwspinlock_core.c:397:30: warning: incorrect type in > assignment (different address spaces) > drivers/hwspinlock/hwspinlock_core.c:397:30: expected void **slot > drivers/hwspinlock/hwspinlock_core.c:397:30: got void [noderef] __rcu ** > drivers/hwspinlock/hwspinlock_core.c:392:9: warning: incorrect type in > argument 1 (different address spaces) > drivers/hwspinlock/hwspinlock_core.c:392:9: expected void [noderef] __rcu > **slot > drivers/hwspinlock/hwspinlock_core.c:392:9: got void **slot > drivers/hwspinlock/hwspinlock_core.c:392:9: warning: incorrect type in > assignment (different address spaces) > drivers/hwspinlock/hwspinlock_core.c:392:9: expected void **slot > drivers/hwspinlock/hwspinlock_core.c:392:9: got void [noderef] __rcu ** > > all linked to the same missing '__rcu' at declaration of 'slot'. > > Fix it! > > Signed-off-by: Antonio Borneo <[email protected]> > --- > drivers/hwspinlock/hwspinlock_core.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/hwspinlock/hwspinlock_core.c > b/drivers/hwspinlock/hwspinlock_core.c > index cc8e952a67727..50a875b2353f8 100644 > --- a/drivers/hwspinlock/hwspinlock_core.c > +++ b/drivers/hwspinlock/hwspinlock_core.c > @@ -372,7 +372,7 @@ int of_hwspin_lock_get_id(struct device_node *np, int > index) > struct of_phandle_args args; > struct hwspinlock *hwlock; > struct radix_tree_iter iter; > - void **slot; > + void __rcu **slot;
Please ignore this patch. While it fixes a minor warning from sparse, the analysis in http://sashiko.dev/#/patchset/20260323102210.228551-1-antonio.borneo%40foss.st.com highlights a race if provider is unbind, plus I see another race between provider and consumer on async probe. I'm checking to fix such races, addressing at the same time the warning from sparse. Merging this patch now will only create unnecessary dependency for backporting in stable. Regards, Antonio

