summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWei Wang <weibunny@fb.com>2026-08-13 12:34:16 -0700
committerJakub Kicinski <kuba@kernel.org>2026-08-17 11:06:14 -0700
commit97a1e65df7eef996693d604ae90aaf2530578912 (patch)
treea1b61e4d9c7dbd7a42e272e48850b666d350ae40
parentcf85f810f911234a06a4ef2439e8694b93b717fc (diff)
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 <lkp@intel.com> Closes: https://lore.kernel.org/oe-kbuild-all/202608080910.l9KvOH7O-lkp@intel.com/ Signed-off-by: Wei Wang <weibunny@fb.com> Link: https://patch.msgid.link/20260813193416.1544518-1-weibunny.kernel@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r--net/psp/psp_nl.c3
1 files changed, 2 insertions, 1 deletions
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;