Re: [PATCH] usb: USB host support should depend on HAS_DMA

From: Arnd Bergmann
Date: Wed Jul 10 2013 - 19:13:14 EST


On Wednesday 10 July 2013, Alan Stern wrote:
> This isn't right. There are USB host controllers that use PIO, not
> DMA. The HAS_DMA dependency should go with the controller driver, not
> the USB core.
>
> On the other hand, the USB core does call various routines like
> dma_unmap_single. It ought to be possible to compile these calls even
> when DMA isn't enabled. That is, they should be defined as do-nothing
> stubs.

The asm-generic/dma-mapping-broken.h file intentionally causes link
errors, but that could be changed.

The better approach in my mind would be to replace code like


if (hcd->self.uses_dma)

with

if (IS_ENABLED(CONFIG_HAS_DMA) && hcd->self.uses_dma) {

which will reliably cause that reference to be omitted from object code,
but not stop giving link errors for drivers that actually require
DMA.

Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/