Message ID | 1744621234-26114-2-git-send-email-kotaranov@linux.microsoft.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | RDMA/mana_ib: extend MR support | expand |
> Subject: [PATCH rdma-next v2 1/3] RDMA/mana_ib: Access remote atomic for > MRs > > From: Konstantin Taranov <kotaranov@microsoft.com> > > Add IB_ACCESS_REMOTE_ATOMIC to the valid flags for MRs and use the > corresponding flag bit during MR creation in the HW. > > Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com> Reviewed-by: Long Li <longli@microsoft.com> > --- > drivers/infiniband/hw/mana/mr.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/drivers/infiniband/hw/mana/mr.c b/drivers/infiniband/hw/mana/mr.c > index f99557e..e4a9f53 100644 > --- a/drivers/infiniband/hw/mana/mr.c > +++ b/drivers/infiniband/hw/mana/mr.c > @@ -5,8 +5,8 @@ > > #include "mana_ib.h" > > -#define VALID_MR_FLAGS \ > - (IB_ACCESS_LOCAL_WRITE | IB_ACCESS_REMOTE_WRITE | > IB_ACCESS_REMOTE_READ) > +#define VALID_MR_FLAGS (IB_ACCESS_LOCAL_WRITE | > IB_ACCESS_REMOTE_WRITE | IB_ACCESS_REMOTE_READ |\ > + IB_ACCESS_REMOTE_ATOMIC) > > #define VALID_DMA_MR_FLAGS (IB_ACCESS_LOCAL_WRITE) > > @@ -24,6 +24,9 @@ mana_ib_verbs_to_gdma_access_flags(int access_flags) > if (access_flags & IB_ACCESS_REMOTE_READ) > flags |= GDMA_ACCESS_FLAG_REMOTE_READ; > > + if (access_flags & IB_ACCESS_REMOTE_ATOMIC) > + flags |= GDMA_ACCESS_FLAG_REMOTE_ATOMIC; > + > return flags; > } > > -- > 2.43.0
diff --git a/drivers/infiniband/hw/mana/mr.c b/drivers/infiniband/hw/mana/mr.c index f99557e..e4a9f53 100644 --- a/drivers/infiniband/hw/mana/mr.c +++ b/drivers/infiniband/hw/mana/mr.c @@ -5,8 +5,8 @@ #include "mana_ib.h" -#define VALID_MR_FLAGS \ - (IB_ACCESS_LOCAL_WRITE | IB_ACCESS_REMOTE_WRITE | IB_ACCESS_REMOTE_READ) +#define VALID_MR_FLAGS (IB_ACCESS_LOCAL_WRITE | IB_ACCESS_REMOTE_WRITE | IB_ACCESS_REMOTE_READ |\ + IB_ACCESS_REMOTE_ATOMIC) #define VALID_DMA_MR_FLAGS (IB_ACCESS_LOCAL_WRITE) @@ -24,6 +24,9 @@ mana_ib_verbs_to_gdma_access_flags(int access_flags) if (access_flags & IB_ACCESS_REMOTE_READ) flags |= GDMA_ACCESS_FLAG_REMOTE_READ; + if (access_flags & IB_ACCESS_REMOTE_ATOMIC) + flags |= GDMA_ACCESS_FLAG_REMOTE_ATOMIC; + return flags; }