projects
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
fa25eba
)
mmc: cavium: Add the missing dma unmap when the dma has finished.
author
Kevin Hao
<haokexin@gmail.com>
Fri, 26 Jul 2019 02:30:49 +0000
(10:30 +0800)
committer
Ulf Hansson
<ulf.hansson@linaro.org>
Tue, 6 Aug 2019 16:59:14 +0000
(18:59 +0200)
This fixes the below calltrace when the CONFIG_DMA_API_DEBUG is enabled.
DMA-API: thunderx_mmc 0000:01:01.4: cpu touching an active dma mapped cacheline [cln=0x000000002fdf9800]
WARNING: CPU: 21 PID: 1 at kernel/dma/debug.c:596 debug_dma_assert_idle+0x1f8/0x270
Modules linked in:
CPU: 21 PID: 1 Comm: init Not tainted 5.3.0-rc1-next-
20190725
-yocto-standard+ #64
Hardware name: Marvell OcteonTX CN96XX board (DT)
pstate:
80400009
(Nzcv daif +PAN -UAO)
pc : debug_dma_assert_idle+0x1f8/0x270
lr : debug_dma_assert_idle+0x1f8/0x270
sp :
ffff0000113cfc10
x29:
ffff0000113cfc10
x28:
0000ffff8c880000
x27:
ffff800bc72a0000
x26:
ffff000010ff8000
x25:
ffff000010ff8940
x24:
ffff000010ff8968
x23:
0000000000000000
x22:
ffff000010e83700
x21:
ffff000010ea2000
x20:
ffff000010e835c8
x19:
ffff800bc2c73300
x18:
ffffffffffffffff
x17:
0000000000000000
x16:
0000000000000000
x15:
ffff000010e835c8
x14:
6d20616d64206576
x13:
69746361206e6120
x12:
676e696863756f74
x11:
20757063203a342e
x10:
31303a31303a3030
x9 :
303020636d6d5f78
x8 :
3230303030303030
x7 :
00000000000002fd
x6 :
ffff000010fd57d0
x5 :
0000000000000000
x4 :
ffff0000106c5210
x3 :
00000000ffffffff
x2 :
0000800bee9c0000
x1 :
57d5843f4aa62800
x0 :
0000000000000000
Call trace:
debug_dma_assert_idle+0x1f8/0x270
wp_page_copy+0xb0/0x688
do_wp_page+0xa8/0x5b8
__handle_mm_fault+0x600/0xd00
handle_mm_fault+0x118/0x1e8
do_page_fault+0x200/0x500
do_mem_abort+0x50/0xb0
el0_da+0x20/0x24
---[ end trace
a005534bd23e109f
]---
DMA-API: Mapped at:
debug_dma_map_sg+0x94/0x350
cvm_mmc_request+0x3c4/0x988
__mmc_start_request+0x9c/0x1f8
mmc_start_request+0x7c/0xb0
mmc_blk_mq_issue_rq+0x5c4/0x7b8
Signed-off-by: Kevin Hao <haokexin@gmail.com>
Fixes:
ba3869ff32e4
("mmc: cavium: Add core MMC driver for Cavium SOCs")
Cc: stable@vger.kernel.org
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/cavium.c
patch
|
blob
|
history
diff --git
a/drivers/mmc/host/cavium.c
b/drivers/mmc/host/cavium.c
index
c956813
..
89deb45
100644
(file)
--- a/
drivers/mmc/host/cavium.c
+++ b/
drivers/mmc/host/cavium.c
@@
-374,6
+374,7
@@
static int finish_dma_single(struct cvm_mmc_host *host, struct mmc_data *data)
{
data->bytes_xfered = data->blocks * data->blksz;
data->error = 0;
+ dma_unmap_sg(host->dev, data->sg, data->sg_len, get_dma_dir(data));
return 1;
}