Re: [PATCH] swiotlb: swiotlb_{alloc,free}_buffer should depend on CONFIG_DMA_DIRECT_OPS

From: Konrad Rzeszutek Wilk
Date: Fri Mar 23 2018 - 14:57:32 EST


On Fri, Mar 23, 2018 at 06:49:30PM +0100, Christoph Hellwig wrote:
> Otherwise we might get unused symbol warnings for configs that built
> swiotlb.c only for use by xen-swiotlb.c and that don't otherwise select
> CONFIG_DMA_DIRECT_OPS, which is possible on arm.
>
> Fixes: 16e73adbca76 ("dma/swiotlb: Remove swiotlb_{alloc,free}_coherent()")
> Reported-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
> Signed-off-by: Christoph Hellwig <hch@xxxxxx>


Alternatively could we set the Kconfig to slect DMA_DIRECT_OPS?

> ---
> lib/swiotlb.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/lib/swiotlb.c b/lib/swiotlb.c
> index 15954b86f09e..47aeb04c1997 100644
> --- a/lib/swiotlb.c
> +++ b/lib/swiotlb.c
> @@ -692,6 +692,7 @@ void swiotlb_tbl_sync_single(struct device *hwdev, phys_addr_t tlb_addr,
> }
> }
>
> +#ifdef CONFIG_DMA_DIRECT_OPS
> static inline bool dma_coherent_ok(struct device *dev, dma_addr_t addr,
> size_t size)
> {
> @@ -763,6 +764,7 @@ static bool swiotlb_free_buffer(struct device *dev, size_t size,
> DMA_ATTR_SKIP_CPU_SYNC);
> return true;
> }
> +#endif
>
> static void
> swiotlb_full(struct device *dev, size_t size, enum dma_data_direction dir,
> --
> 2.14.2
>