Re: [PATCH V2 3/3] RDMA/rtrs-clt: Kill xchg_paths

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Sep 8, 2022 at 11:46 AM Guoqing Jiang <guoqing.jiang@xxxxxxxxx> wrote:
>
> Let's call try_cmpxchg directly for the same purpose.
>
> Acked-by: Md Haris Iqbal <haris.iqbal@xxxxxxxxx>
> Signed-off-by: Guoqing Jiang <guoqing.jiang@xxxxxxxxx>
> Reported-by: kernel test robot <lkp@xxxxxxxxx>

I am not sure whats the correct way of using this. But technically,
this change was NOT done due to a report from the "kernel test robot".
It only pointed out the problem in the original patch. To the branch
maintainers, if its okay to keep this in this scenario, then ignore
this comment.

Thanks.

> ---
>  drivers/infiniband/ulp/rtrs/rtrs-clt.c | 14 ++------------
>  1 file changed, 2 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/infiniband/ulp/rtrs/rtrs-clt.c b/drivers/infiniband/ulp/rtrs/rtrs-clt.c
> index c29eccdb4fd2..2428bf5d07e3 100644
> --- a/drivers/infiniband/ulp/rtrs/rtrs-clt.c
> +++ b/drivers/infiniband/ulp/rtrs/rtrs-clt.c
> @@ -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
> --
> 2.31.1
>



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux