RDMA/rtrs-clt: Kill xchg_paths
Let's call try_cmpxchg directly for the same purpose. Signed-off-by: Guoqing Jiang <guoqing.jiang@linux.dev> Link: https://lore.kernel.org/r/20220903040252.29397-1-guoqing.jiang@linux.dev Signed-off-by: Leon Romanovsky <leon@kernel.org>
This commit is contained in:
parent
57eb938237
commit
db77d84cfe
@ -2220,17 +2220,6 @@ static void rtrs_clt_stop_and_destroy_conns(struct rtrs_clt_path *clt_path)
|
||||
}
|
||||
}
|
||||
|
||||
static inline bool xchg_paths(struct rtrs_clt_path __rcu **rcu_ppcpu_path,
|
||||
struct rtrs_clt_path *clt_path,
|
||||
struct rtrs_clt_path *next)
|
||||
{
|
||||
struct rtrs_clt_path **ppcpu_path;
|
||||
|
||||
/* Call cmpxchg() without sparse warnings */
|
||||
ppcpu_path = (typeof(ppcpu_path))rcu_ppcpu_path;
|
||||
return clt_path == cmpxchg(ppcpu_path, clt_path, next);
|
||||
}
|
||||
|
||||
static void rtrs_clt_remove_path_from_arr(struct rtrs_clt_path *clt_path)
|
||||
{
|
||||
struct rtrs_clt_sess *clt = clt_path->clt;
|
||||
@ -2305,7 +2294,8 @@ static void rtrs_clt_remove_path_from_arr(struct rtrs_clt_path *clt_path)
|
||||
* We race with IO code path, which also changes pointer,
|
||||
* thus we have to be careful not to overwrite it.
|
||||
*/
|
||||
if (xchg_paths(ppcpu_path, clt_path, next))
|
||||
if (try_cmpxchg((struct rtrs_clt_path **)ppcpu_path, &clt_path,
|
||||
next))
|
||||
/*
|
||||
* @ppcpu_path was successfully replaced with @next,
|
||||
* that means that someone could also pick up the
|
||||
|
Loading…
Reference in New Issue
Block a user