• Krzysztof Kozlowski's avatar
    spi: spi-fsl-dspi: Free DMA memory with matching function · 03fe7aaf
    Krzysztof Kozlowski authored
    Driver allocates DMA memory with dma_alloc_coherent() but frees it with
    dma_unmap_single().
    
    This causes DMA warning during system shutdown (with DMA debugging) on
    Toradex Colibri VF50 module:
    
        WARNING: CPU: 0 PID: 1 at ../kernel/dma/debug.c:1036 check_unmap+0x3fc/0xb04
        DMA-API: fsl-edma 40098000.dma-controller: device driver frees DMA memory with wrong function
          [device address=0x0000000087040000] [size=8 bytes] [mapped as coherent] [unmapped as single]
        Hardware name: Freescale Vybrid VF5xx/VF6xx (Device Tree)
          (unwind_backtrace) from [<8010bb34>] (show_stack+0x10/0x14)
          (show_stack) from [<8011ced8>] (__warn+0xf0/0x108)
          (__warn) from [<8011cf64>] (warn_slowpath_fmt+0x74/0xb8)
          (warn_slowpath_fmt) from [<8017d170>] (check_unmap+0x3fc/0xb04)
          (check_unmap) from [<8017d900>] (debug_dma_unmap_page+0x88/0x90)
          (debug_dma_unmap_page) from [<80601d68>] (dspi_release_dma+0x88/0x110)
          (dspi_release_dma) from [<80601e4c>] (dspi_shutdown+0x5c/0x80)
          (dspi_shutdown) from [<805845f8>] (device_shutdown+0x17c/0x220)
          (device_shutdown) from [<80143ef8>] (kernel_restart+0xc/0x50)
          (kernel_restart) from [<801441cc>] (__do_sys_reboot+0x18c/0x210)
          (__do_sys_reboot) from [<80100060>] (ret_fast_syscall+0x0/0x28)
        DMA-API: Mapped at:
         dma_alloc_attrs+0xa4/0x130
         dspi_probe+0x568/0x7b4
         platform_drv_probe+0x6c/0xa4
         really_probe+0x208/0x348
         driver_probe_device+0x5c/0xb4
    
    Fixes: 90ba3703 ("spi: spi-fsl-dspi: Add DMA support for Vybrid")
    Signed-off-by: default avatarKrzysztof Kozlowski <krzk@kernel.org>
    Acked-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/1591803717-11218-1-git-send-email-krzk@kernel.orgSigned-off-by: default avatarMark Brown <broonie@kernel.org>
    03fe7aaf
spi-fsl-dspi.c 36.5 KB