On 08/06/2018 01:37 AM, Christoph Hellwig wrote:
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.
Yes, I can confirm that the warning is gone in -next. Problem solved,
except of course there are still the warnings about the missing
coherent_dma_mask.
sm501-usb sm501-usb: SM501 OHCI
sm501-usb sm501-usb: new USB bus registered, assigned bus number 1
WARNING: CPU: 0 PID: 1 at ./include/linux/dma-mapping.h:516 ohci_init+0x194/0x2d8
Is that warning also not warranted for the given use case, or is
the missing mask indeed necessary ? It is easy to add - see
https://lore.kernel.org/patchwork/patch/971411/ - but I do wonder
if that change is appropriate.
Thanks,
Guenter
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html