[PATCH net] psp: use unrcu_pointer() for the cmpxchg() on netdev psp_dev
Wei Wang <[email protected]>
| Newsgroups | gmane.linux.network,gmane.linux.kernel |
|---|---|
| Message-ID | <[email protected]> |
From: Wei Wang <[email protected]> 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 <[email protected]> Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/ Signed-off-by: Wei Wang <[email protected]> --- 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; -- 2.53.0-Meta