diff mbox series

[for-next] RDMA/rxe: Improve readability of ODP pagefault interface

Message ID 20250312065937.1787241-1-matsuda-daisuke@fujitsu.com (mailing list archive)
State New
Headers show
Series [for-next] RDMA/rxe: Improve readability of ODP pagefault interface | expand

Commit Message

Daisuke Matsuda (Fujitsu) March 12, 2025, 6:59 a.m. UTC
Use a meaningful constant explicitly instead of hard-coding a literal.

Signed-off-by: Daisuke Matsuda <matsuda-daisuke@fujitsu.com>
---
 drivers/infiniband/sw/rxe/rxe_odp.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

Comments

Zhu Yanjun March 12, 2025, 7:19 a.m. UTC | #1
在 2025/3/12 7:59, Daisuke Matsuda 写道:
> Use a meaningful constant explicitly instead of hard-coding a literal.
> 
> Signed-off-by: Daisuke Matsuda <matsuda-daisuke@fujitsu.com>
> ---
>   drivers/infiniband/sw/rxe/rxe_odp.c | 12 +++++++-----
>   1 file changed, 7 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/infiniband/sw/rxe/rxe_odp.c b/drivers/infiniband/sw/rxe/rxe_odp.c
> index a82e5011360c..94f7bbe14981 100644
> --- a/drivers/infiniband/sw/rxe/rxe_odp.c
> +++ b/drivers/infiniband/sw/rxe/rxe_odp.c
> @@ -37,8 +37,9 @@ const struct mmu_interval_notifier_ops rxe_mn_ops = {
>   	.invalidate = rxe_ib_invalidate_range,
>   };
>   
> -#define RXE_PAGEFAULT_RDONLY BIT(1)
> -#define RXE_PAGEFAULT_SNAPSHOT BIT(2)
> +#define RXE_PAGEFAULT_DEFAULT 0
> +#define RXE_PAGEFAULT_RDONLY BIT(0)
> +#define RXE_PAGEFAULT_SNAPSHOT BIT(1)
>   static int rxe_odp_do_pagefault_and_lock(struct rxe_mr *mr, u64 user_va, int bcnt, u32 flags)
>   {
>   	struct ib_umem_odp *umem_odp = to_ib_umem_odp(mr->umem);
> @@ -222,7 +223,7 @@ int rxe_odp_mr_copy(struct rxe_mr *mr, u64 iova, void *addr, int length,
>   		    enum rxe_mr_copy_dir dir)
>   {
>   	struct ib_umem_odp *umem_odp = to_ib_umem_odp(mr->umem);
> -	u32 flags = 0;
> +	u32 flags = RXE_PAGEFAULT_DEFAULT;
>   	int err;
>   
>   	if (length == 0)
> @@ -236,7 +237,7 @@ int rxe_odp_mr_copy(struct rxe_mr *mr, u64 iova, void *addr, int length,
>   		break;
>   
>   	case RXE_FROM_MR_OBJ:
> -		flags = RXE_PAGEFAULT_RDONLY;
> +		flags |= RXE_PAGEFAULT_RDONLY;

The above "|=" is different from the original "=". I am not sure if it 
is correct or not. But in this function, because flags is set 0 at 
first. Thus, the result is the same.

Except the above, I am fine with this commit.
Thanks a lot.

Reviewed-by: Zhu Yanjun <yanjun.zhu@linux.dev>

Zhu Yanjun

>   		break;
>   
>   	default:
> @@ -312,7 +313,8 @@ int rxe_odp_atomic_op(struct rxe_mr *mr, u64 iova, int opcode,
>   	struct ib_umem_odp *umem_odp = to_ib_umem_odp(mr->umem);
>   	int err;
>   
> -	err = rxe_odp_map_range_and_lock(mr, iova, sizeof(char), 0);
> +	err = rxe_odp_map_range_and_lock(mr, iova, sizeof(char),
> +					 RXE_PAGEFAULT_DEFAULT);
>   	if (err < 0)
>   		return err;
>
Daisuke Matsuda (Fujitsu) March 12, 2025, 7:58 a.m. UTC | #2
On Wed, March 12, 2025 4:19 PM Zhu Yanjun <yanjun.zhu@linux.dev> wrote:
> 在 2025/3/12 7:59, Daisuke Matsuda 写道:
> > Use a meaningful constant explicitly instead of hard-coding a literal.
> >
> > Signed-off-by: Daisuke Matsuda <matsuda-daisuke@fujitsu.com>
> > ---
> >   drivers/infiniband/sw/rxe/rxe_odp.c | 12 +++++++-----
> >   1 file changed, 7 insertions(+), 5 deletions(-)
> >
> > diff --git a/drivers/infiniband/sw/rxe/rxe_odp.c b/drivers/infiniband/sw/rxe/rxe_odp.c
> > index a82e5011360c..94f7bbe14981 100644
> > --- a/drivers/infiniband/sw/rxe/rxe_odp.c
> > +++ b/drivers/infiniband/sw/rxe/rxe_odp.c
> > @@ -37,8 +37,9 @@ const struct mmu_interval_notifier_ops rxe_mn_ops = {
> >   	.invalidate = rxe_ib_invalidate_range,
> >   };
> >
> > -#define RXE_PAGEFAULT_RDONLY BIT(1)
> > -#define RXE_PAGEFAULT_SNAPSHOT BIT(2)
> > +#define RXE_PAGEFAULT_DEFAULT 0
> > +#define RXE_PAGEFAULT_RDONLY BIT(0)
> > +#define RXE_PAGEFAULT_SNAPSHOT BIT(1)
> >   static int rxe_odp_do_pagefault_and_lock(struct rxe_mr *mr, u64 user_va, int bcnt, u32 flags)
> >   {
> >   	struct ib_umem_odp *umem_odp = to_ib_umem_odp(mr->umem);
> > @@ -222,7 +223,7 @@ int rxe_odp_mr_copy(struct rxe_mr *mr, u64 iova, void *addr, int length,
> >   		    enum rxe_mr_copy_dir dir)
> >   {
> >   	struct ib_umem_odp *umem_odp = to_ib_umem_odp(mr->umem);
> > -	u32 flags = 0;
> > +	u32 flags = RXE_PAGEFAULT_DEFAULT;
> >   	int err;
> >
> >   	if (length == 0)
> > @@ -236,7 +237,7 @@ int rxe_odp_mr_copy(struct rxe_mr *mr, u64 iova, void *addr, int length,
> >   		break;
> >
> >   	case RXE_FROM_MR_OBJ:
> > -		flags = RXE_PAGEFAULT_RDONLY;
> > +		flags |= RXE_PAGEFAULT_RDONLY;
> 
> The above "|=" is different from the original "=". I am not sure if it
> is correct or not. But in this function, because flags is set 0 at
> first. Thus, the result is the same.

Thank you for the review.

I had used this "flags" like an enum variable rather than a flag here,
but the latter approach should be better for future extensions. 

Daisuke

> 
> Except the above, I am fine with this commit.
> Thanks a lot.
> 
> Reviewed-by: Zhu Yanjun <yanjun.zhu@linux.dev>
> 
> Zhu Yanjun
> 
> >   		break;
> >
> >   	default:
> > @@ -312,7 +313,8 @@ int rxe_odp_atomic_op(struct rxe_mr *mr, u64 iova, int opcode,
> >   	struct ib_umem_odp *umem_odp = to_ib_umem_odp(mr->umem);
> >   	int err;
> >
> > -	err = rxe_odp_map_range_and_lock(mr, iova, sizeof(char), 0);
> > +	err = rxe_odp_map_range_and_lock(mr, iova, sizeof(char),
> > +					 RXE_PAGEFAULT_DEFAULT);
> >   	if (err < 0)
> >   		return err;
> >
diff mbox series

Patch

diff --git a/drivers/infiniband/sw/rxe/rxe_odp.c b/drivers/infiniband/sw/rxe/rxe_odp.c
index a82e5011360c..94f7bbe14981 100644
--- a/drivers/infiniband/sw/rxe/rxe_odp.c
+++ b/drivers/infiniband/sw/rxe/rxe_odp.c
@@ -37,8 +37,9 @@  const struct mmu_interval_notifier_ops rxe_mn_ops = {
 	.invalidate = rxe_ib_invalidate_range,
 };
 
-#define RXE_PAGEFAULT_RDONLY BIT(1)
-#define RXE_PAGEFAULT_SNAPSHOT BIT(2)
+#define RXE_PAGEFAULT_DEFAULT 0
+#define RXE_PAGEFAULT_RDONLY BIT(0)
+#define RXE_PAGEFAULT_SNAPSHOT BIT(1)
 static int rxe_odp_do_pagefault_and_lock(struct rxe_mr *mr, u64 user_va, int bcnt, u32 flags)
 {
 	struct ib_umem_odp *umem_odp = to_ib_umem_odp(mr->umem);
@@ -222,7 +223,7 @@  int rxe_odp_mr_copy(struct rxe_mr *mr, u64 iova, void *addr, int length,
 		    enum rxe_mr_copy_dir dir)
 {
 	struct ib_umem_odp *umem_odp = to_ib_umem_odp(mr->umem);
-	u32 flags = 0;
+	u32 flags = RXE_PAGEFAULT_DEFAULT;
 	int err;
 
 	if (length == 0)
@@ -236,7 +237,7 @@  int rxe_odp_mr_copy(struct rxe_mr *mr, u64 iova, void *addr, int length,
 		break;
 
 	case RXE_FROM_MR_OBJ:
-		flags = RXE_PAGEFAULT_RDONLY;
+		flags |= RXE_PAGEFAULT_RDONLY;
 		break;
 
 	default:
@@ -312,7 +313,8 @@  int rxe_odp_atomic_op(struct rxe_mr *mr, u64 iova, int opcode,
 	struct ib_umem_odp *umem_odp = to_ib_umem_odp(mr->umem);
 	int err;
 
-	err = rxe_odp_map_range_and_lock(mr, iova, sizeof(char), 0);
+	err = rxe_odp_map_range_and_lock(mr, iova, sizeof(char),
+					 RXE_PAGEFAULT_DEFAULT);
 	if (err < 0)
 		return err;