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>
This commit is contained in:
Родитель
d1998ef38a
Коммит
c59a3da134
|
@ -1639,7 +1639,14 @@ static inline void *ib_dma_alloc_coherent(struct ib_device *dev,
|
|||
{
|
||||
if (dev->dma_ops)
|
||||
return dev->dma_ops->alloc_coherent(dev, size, dma_handle, flag);
|
||||
return dma_alloc_coherent(dev->dma_device, size, dma_handle, flag);
|
||||
else {
|
||||
dma_addr_t handle;
|
||||
void *ret;
|
||||
|
||||
ret = dma_alloc_coherent(dev->dma_device, size, &handle, flag);
|
||||
*dma_handle = handle;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Загрузка…
Ссылка в новой задаче