On 20/09/16 16:58, Andrey Smirnov wrote:
> When CONFIG_DMA_API_DEBUG is enabled we need to preserve unmapping
> address even if "unmap" is a no-op for our architecutre because we need
> debug_dma_unmap_page() to correctly cleanup all of the debug
> bookkeeping. Failing to do so results in a false positive warnings about
> previously mapped areas never being unmapped.

Makes sense, although I guess it might be even clearer to simply have
DMA_API_DEBUG select NEED_DMA_MAP_STATE. Either way, though,

Reviewed-by: Robin Murphy <robin.mur...@arm.com>

> 
> Signed-off-by: Andrey Smirnov <andrew.smir...@gmail.com>
> ---
>  include/linux/dma-mapping.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
> index 71c1b21..41c9875 100644
> --- a/include/linux/dma-mapping.h
> +++ b/include/linux/dma-mapping.h
> @@ -678,7 +678,7 @@ static inline int dma_mmap_wc(struct device *dev,
>  #define dma_mmap_writecombine dma_mmap_wc
>  #endif
>  
> -#ifdef CONFIG_NEED_DMA_MAP_STATE
> +#if defined(CONFIG_NEED_DMA_MAP_STATE) || defined(CONFIG_DMA_API_DEBUG)
>  #define DEFINE_DMA_UNMAP_ADDR(ADDR_NAME)        dma_addr_t ADDR_NAME
>  #define DEFINE_DMA_UNMAP_LEN(LEN_NAME)          __u32 LEN_NAME
>  #define dma_unmap_addr(PTR, ADDR_NAME)           ((PTR)->ADDR_NAME)
> 

Reply via email to