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


Reply via email to