From 97a1e65df7eef996693d604ae90aaf2530578912 Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Thu, 13 Aug 2026 12:34:16 -0700 Subject: [PATCH] psp: use unrcu_pointer() for the cmpxchg() on netdev psp_dev sparse reports: net/psp/psp_nl.c:513:13: sparse: sparse: cast removes address space '__rcu' of expression cmpxchg() returns typeof(*ptr) and its internal casts strip the __rcu annotation. Wrap it in unrcu_pointer(), the documented way to use an __rcu pointer with xchg() and friends. This was introduced by commit 06c2dce2d0f6 ("psp: add new netlink cmd for dev-assoc and dev-disassoc"). No functional change intended. Reported-by: kernel test robot Closes: https://lore.kernel.org/oe-kbuild-all/202608080910.l9KvOH7O-lkp@intel.com/ Signed-off-by: Wei Wang Link: https://patch.msgid.link/20260813193416.1544518-1-weibunny.kernel@gmail.com Signed-off-by: Jakub Kicinski --- net/psp/psp_nl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/net/psp/psp_nl.c b/net/psp/psp_nl.c index 43b066353c65..f91665748dde 100644 --- a/net/psp/psp_nl.c +++ b/net/psp/psp_nl.c @@ -533,7 +533,8 @@ int psp_nl_dev_assoc_doit(struct sk_buff *skb, struct genl_info *info) } /* Check if device is already associated with a PSP device */ - if (cmpxchg(&assoc_dev->psp_dev, NULL, RCU_INITIALIZER(psd))) { + if (unrcu_pointer(cmpxchg(&assoc_dev->psp_dev, NULL, + RCU_INITIALIZER(psd)))) { NL_SET_ERR_MSG(info->extack, "Device already associated with a PSP device"); err = -EBUSY;