diff options
author | Roland Dreier <rolandd@cisco.com> | 2006-12-15 16:57:26 -0500 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2006-12-15 16:57:26 -0500 |
commit | c59a3da1342ff456e5123361739bc331446cda21 (patch) | |
tree | a75aa1d937a774f53e1875849082d28683c859ec | |
parent | d1998ef38a13c4e74c69df55ccd38b0440c429b2 (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.h | 9 |
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 | /** |