[PATCH RFC] dwc2: Don't assume URB transfer_buffer are dword-aligned

Greg Kroah-Hartman gregkh at linuxfoundation.org
Thu Mar 16 18:24:15 PDT 2017


On Thu, Mar 16, 2017 at 09:08:40PM -0300, Mauro Carvalho Chehab wrote:
> The dwc2 hardware doesn't like to do DMA transfers without
> aligning data in DWORD. The driver also assumes that, even
> when there's no DMA, at dwc2_read_packet().
> 
> That cause buffer overflows, preventing some drivers to work.

Why aren't the drivers being fixed?  This is a well-known (hopefully)
restriction on USB data buffers, can't the uvc_driver be fixed?

> In the specific case of uvc_driver, it uses an array where
> it caches the content of video controls, passing it to the
> USB stack via usb_control_msg(). Typical controls use 1 or 2
> bytes. The net result is that other values of the buffer
> gets overriden when this function is called.

Not good, it should be fixed, otherwise you are going to have to try to
fix up all host controllers :(

thanks,

greg k-h



More information about the linux-rpi-kernel mailing list