Subject: Re: [PATCH 02/11] sky2: fix DMA sync_single length error

From: Stephen Hemminger <[email-masked]>
Date: Wed, 20 Jan 2010 16:04:07 -0800

On Thu, 21 Jan 2010 00:59:20 +0100
Jarek Poplawski <[email-masked]> wrote:

> On Wed, Jan 20, 2010 at 03:41:26PM -0800, David Miller wrote:
> > From: David Miller <[email-masked]>
> > Date: Wed, 20 Jan 2010 15:34:51 -0800 (PST)
> > 
> > > Whereas 1 patch in the 1 place in the DMA API implementation would fix
> > > everything for everybody.
> > 
> > For the record I just checked DMAR and Intel-IOMMU and they
> > don't even implement the SYNC ops, they are NULL and thus
> > can't be effected by the changes being discussed here.
> > 
> > The generic DMA SYNC operations check for a NULL function
> > pointer in the DMA operations, and do nothing if it is NULL.
> > 
> > Thus, so far it is proven that only the DMA debugging code 
> > actually has this SYNC length requirement.
> 
> Thanks, I feel at least 75% safer ;-)
> 

The usage of jumbo frames on the Marvell Yukon-2 chip version that
Michael has is suspect. In order to do Jumbo frames, the driver has
turns off the store-forward buffer; this reduces the window for transmit
underrun, and triggers a problem.  I suspect the unwind logic for
transmit underrun is broken and may not be fixable without more hardware
information.  Turning off jumbo frame support for that chip type
is probably the safest solution.