git: e4c4c6eeb2a2 - main - RDMA: dma-mapping: use unsigned long for dma_attrs

From: John Baldwin <jhb_at_FreeBSD.org>
Date: Mon, 22 Jun 2026 18:37:54 UTC
The branch main has been updated by jhb:

URL: https://cgit.FreeBSD.org/src/commit/?id=e4c4c6eeb2a29f7549d28e6ce51fc36125c08e68

commit e4c4c6eeb2a29f7549d28e6ce51fc36125c08e68
Author:     John Baldwin <jhb@FreeBSD.org>
AuthorDate: 2026-05-28 15:51:30 +0000
Commit:     John Baldwin <jhb@FreeBSD.org>
CommitDate: 2026-06-22 18:36:53 +0000

    RDMA: dma-mapping: use unsigned long for dma_attrs
    
    Tested by:      Wafa Hamzah <wafah@nvidia.com> (mlx5_ib)
    Tested by:      John Baldwin <jhb@FreeBSD.org> (iw_cxgbe)
    Obtained from:  Linux commit 00085f1efa387a8ce100e3734920f7639c80caa3
    Sponsored by:   Chelsio Communications
---
 sys/ofed/drivers/infiniband/core/ib_umem.c |  6 +++---
 sys/ofed/include/rdma/ib_verbs.h           | 20 ++++++++++----------
 2 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/sys/ofed/drivers/infiniband/core/ib_umem.c b/sys/ofed/drivers/infiniband/core/ib_umem.c
index ff92c4fa12a5..1f99d2560224 100644
--- a/sys/ofed/drivers/infiniband/core/ib_umem.c
+++ b/sys/ofed/drivers/infiniband/core/ib_umem.c
@@ -93,13 +93,13 @@ struct ib_umem *ib_umem_get(struct ib_ucontext *context, unsigned long addr,
 	unsigned long npages;
 	int ret;
 	int i;
-	struct dma_attrs dma_attrs = { 0 };
+	unsigned long dma_attrs = 0;
 	struct scatterlist *sg, *sg_list_start;
 	int need_release = 0;
 	unsigned int gup_flags = FOLL_WRITE;
 
 	if (dmasync)
-		dma_attrs.flags |= DMA_ATTR_WRITE_BARRIER;
+		dma_attrs |= DMA_ATTR_WRITE_BARRIER;
 
 	if (!size)
 		return ERR_PTR(-EINVAL);
@@ -202,7 +202,7 @@ struct ib_umem *ib_umem_get(struct ib_ucontext *context, unsigned long addr,
 				  umem->sg_head.sgl,
 				  umem->npages,
 				  DMA_BIDIRECTIONAL,
-				  &dma_attrs);
+				  dma_attrs);
 
 	if (umem->nmap <= 0) {
 		ret = -ENOMEM;
diff --git a/sys/ofed/include/rdma/ib_verbs.h b/sys/ofed/include/rdma/ib_verbs.h
index 8929cf2fe0b1..b495c1da6c57 100644
--- a/sys/ofed/include/rdma/ib_verbs.h
+++ b/sys/ofed/include/rdma/ib_verbs.h
@@ -2024,11 +2024,11 @@ struct ib_dma_mapping_ops {
 	int		(*map_sg_attrs)(struct ib_device *dev,
 					struct scatterlist *sg, int nents,
 					enum dma_data_direction direction,
-					struct dma_attrs *attrs);
+					unsigned long attrs);
 	void		(*unmap_sg_attrs)(struct ib_device *dev,
 					  struct scatterlist *sg, int nents,
 					  enum dma_data_direction direction,
-					  struct dma_attrs *attrs);
+					  unsigned long attrs);
 	void		(*sync_single_for_cpu)(struct ib_device *dev,
 					       u64 dma_handle,
 					       size_t size,
@@ -3540,19 +3540,19 @@ static inline void ib_dma_unmap_single(struct ib_device *dev,
 static inline u64 ib_dma_map_single_attrs(struct ib_device *dev,
 					  void *cpu_addr, size_t size,
 					  enum dma_data_direction direction,
-					  struct dma_attrs *dma_attrs)
+					  unsigned long dma_attrs)
 {
 	return dma_map_single_attrs(dev->dma_device, cpu_addr, size,
-				    direction, dma_attrs->flags);
+				    direction, dma_attrs);
 }
 
 static inline void ib_dma_unmap_single_attrs(struct ib_device *dev,
 					     u64 addr, size_t size,
 					     enum dma_data_direction direction,
-					     struct dma_attrs *dma_attrs)
+					     unsigned long dma_attrs)
 {
 	return dma_unmap_single_attrs(dev->dma_device, addr, size,
-				      direction, dma_attrs->flags);
+				      direction, dma_attrs);
 }
 
 /**
@@ -3627,27 +3627,27 @@ static inline void ib_dma_unmap_sg(struct ib_device *dev,
 static inline int ib_dma_map_sg_attrs(struct ib_device *dev,
 				      struct scatterlist *sg, int nents,
 				      enum dma_data_direction direction,
-				      struct dma_attrs *dma_attrs)
+				      unsigned long dma_attrs)
 {
 	if (dev->dma_ops)
 		return dev->dma_ops->map_sg_attrs(dev, sg, nents, direction,
 						  dma_attrs);
 	else
 		return dma_map_sg_attrs(dev->dma_device, sg, nents, direction,
-					dma_attrs->flags);
+					dma_attrs);
 }
 
 static inline void ib_dma_unmap_sg_attrs(struct ib_device *dev,
 					 struct scatterlist *sg, int nents,
 					 enum dma_data_direction direction,
-					 struct dma_attrs *dma_attrs)
+					 unsigned long dma_attrs)
 {
 	if (dev->dma_ops)
 		return dev->dma_ops->unmap_sg_attrs(dev, sg, nents, direction,
 						  dma_attrs);
 	else
 		dma_unmap_sg_attrs(dev->dma_device, sg, nents, direction,
-				   dma_attrs->flags);
+				   dma_attrs);
 }
 /**
  * ib_sg_dma_address - Return the DMA address from a scatter/gather entry