Re: [PATCH v2] usb: core: buffer: smallest buffer should start at ARCH_DMA_MINALIGN

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Nov 26, 2014 at 04:27:27PM -0500, Alan Stern wrote:
> On Wed, 26 Nov 2014, Sebastian Andrzej Siewior wrote:
> 
> > the following error pops up during "testusb -a -t 10"
> > | musb-hdrc musb-hdrc.1.auto: dma_pool_free buffer-128,	f134e000/be842000 (bad dma)
> > hcd_buffer_create() creates a few buffers, the smallest has 32 bytes of
> > size. ARCH_KMALLOC_MINALIGN is set to 64 bytes. This combo results in
> > hcd_buffer_alloc() returning memory which is 32bytes aligned and it
> > might by identified by buffer_offset() as another buffer. This means the
> > buffer which is on a 32byte boundary will not get freed, instead it
> > tries to free another buffer with the error message.
> > 
> > This patch fixes the issue by creating the smallest DMA buffer with the
> > size of ARCH_DMA_MINALIGN. This will be either 32 or 64 bytes. If the
> > ARCH_DMA_MINALIGN is 128 (currently powerpc64, mips ip32, x86 pentium 4) then
> > it will create the first buffer with 128 bytes and will have only 3
> > buffers. There is a BUILD_BUG_ON() now in case someone has a minalign of
> > 128 bytes or more.
> 
> More than 128 bytes.  Not "128 bytes or more".

edited by hand, thanks.

greg k-h
--
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




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux