Subject: Re: Workaround for USB DMA bugs

From: David Gibson <[email-masked]>
Date: Thu, 4 Apr 2002 09:34:10 +1000

On Wed, Apr 03, 2002 at 12:43:01PM -0800, David Blythe wrote:
>
> What he said!  We ended up making all of the changes to move buffers,
> align them, etc for both USB and skbuffs, as well as fixing the overly
> aggressive prefetches in memcpy that overlapped previously
> cache-invalidated memory, etc.  The end result is an ugly set of
> changes, but at least the board works reliably now.  We also found one
> nasty problem with an Epson USB printer where after request buffers were
> bloated to cache line aligned length and the bloated length passed to
> the device, that the device doesn't like the bloated length.  So we
> hacked up the control path a little to get at the original length  too.
>  This sort of stuff is a real pain to fix correctly to deal nicely with
> non-coherent systems.

That sounds closer to the correct way of fixing this.  The USB folks
do consider this a bug, and I heard murmurs that suggested this had
already been fixed in 2.5.

--
David Gibson			| For every complex problem there is a
[email-masked]	| solution which is simple, neat and
				| wrong.  -- H.L. Mencken
http://www.ozlabs.org/people/dgibson

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/