Re: [PATCH] USB: OHCI: ohci-sm501: complete URBs in BH context

From: Christoph Hellwig
Date: Mon Aug 06 2018 - 04:37:35 EST


On Fri, Aug 03, 2018 at 09:01:19PM -0700, Guenter Roeck wrote:
> Testing an USB drive connected to ohci-sm501 results in a large number
> of runtime warnings.

As far as I can tell this driver uses the HCD_LOCAL_MEM feature flag
for memory declared using dma_declare_coherent_memory. Unlike the
mormal dma mapping interfaces this special case can actually be freed
from interrupt context, and we have a fix for this warning queued
up in linux-next:

http://git.infradead.org/users/hch/dma-mapping.git/commitdiff/d27fb99f62af7b79c542d161aa5155ed57271ddc

That being said I'm generally very unhappy how dma_init_coherent_memory
turned out. The idea was to allow device local memory to be hidden
behind the DMA API, but in general we use it either as a way to declare
special uncache system memory (which would really be the plaform codes
job), or as a magic bounce buffer like in the USB code. I plan to
eventually untangle this, but it is going to take some time.