diff options
author | Stephen Warren <swarren@nvidia.com> | 2019-01-03 10:23:23 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-01-07 05:14:17 -0800 |
commit | f65e192af35058e5c82da9e90871b472d24912bc (patch) | |
tree | b6caf85193c35b0a88a5a0fa8aa180d956e2eeea /lib/usercopy.c | |
parent | d4a7e9bb74b5aaf07b89f6531c080b1130bdf019 (diff) | |
download | linux-f65e192af35058e5c82da9e90871b472d24912bc.tar.bz2 |
net/mlx4: Get rid of page operation after dma_alloc_coherent
This patch solves a crash at the time of mlx4 driver unload or system
shutdown. The crash occurs because dma_alloc_coherent() returns one
value in mlx4_alloc_icm_coherent(), but a different value is passed to
dma_free_coherent() in mlx4_free_icm_coherent(). In turn this is because
when allocated, that pointer is passed to sg_set_buf() to record it,
then when freed it is re-calculated by calling
lowmem_page_address(sg_page()) which returns a different value. Solve
this by recording the value that dma_alloc_coherent() returns, and
passing this to dma_free_coherent().
This patch is roughly equivalent to commit 378efe798ecf ("RDMA/hns: Get
rid of page operation after dma_alloc_coherent").
Based-on-code-from: Christoph Hellwig <hch@lst.de>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Tariq Toukan <tariqt@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'lib/usercopy.c')
0 files changed, 0 insertions, 0 deletions