aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoland Dreier <rolandd@cisco.com>2006-12-15 16:57:26 -0500
committerRoland Dreier <rolandd@cisco.com>2006-12-15 16:57:26 -0500
commitc59a3da1342ff456e5123361739bc331446cda21 (patch)
treea75aa1d937a774f53e1875849082d28683c859ec
parentd1998ef38a13c4e74c69df55ccd38b0440c429b2 (diff)
IB: Fix ib_dma_alloc_coherent() wrapper
The ib_dma_alloc_coherent() wrapper uses a u64* for the dma_handle parameter, unlike dma_alloc_coherent, which uses dma_addr_t*. This means that we need a temporary variable to handle the case when ib_dma_alloc_coherent() just falls through directly to dma_alloc_coherent() on architectures where sizeof u64 != sizeof dma_addr_t. Signed-off-by: Roland Dreier <rolandd@cisco.com>
-rw-r--r--include/rdma/ib_verbs.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
index 3c2e10574b2..0bfa3328d68 100644
--- a/include/rdma/ib_verbs.h
+++ b/include/rdma/ib_verbs.h
@@ -1639,7 +1639,14 @@ static inline void *ib_dma_alloc_coherent(struct ib_device *dev,
1639{ 1639{
1640 if (dev->dma_ops) 1640 if (dev->dma_ops)
1641 return dev->dma_ops->alloc_coherent(dev, size, dma_handle, flag); 1641 return dev->dma_ops->alloc_coherent(dev, size, dma_handle, flag);
1642 return dma_alloc_coherent(dev->dma_device, size, dma_handle, flag); 1642 else {
1643 dma_addr_t handle;
1644 void *ret;
1645
1646 ret = dma_alloc_coherent(dev->dma_device, size, &handle, flag);
1647 *dma_handle = handle;
1648 return ret;
1649 }
1643} 1650}
1644 1651
1645/** 1652/**