Re: [PATCH 2/2] mmc: cavium: Add the missing dma unmap when the dma has finished.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 26 Jul 2019 at 04:32, Kevin Hao <haokexin@xxxxxxxxx> wrote:
>
> 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@xxxxxxxxx>

Applied for fixes and by adding a stable/fixes tag, thanks!

Kind regards
Uffe


> ---
>  drivers/mmc/host/cavium.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/mmc/host/cavium.c b/drivers/mmc/host/cavium.c
> index c956813bc6bd..89deb451e0ac 100644
> --- 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;
>  }
>
> --
> 2.14.4
>



[Index of Archives]     [Linux Memonry Technology]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux