svn commit: r184135 - head/sys/dev/ata

John Baldwin jhb at freebsd.org
Tue Oct 21 21:21:15 UTC 2008


On Tuesday 21 October 2008 04:55:46 pm Scott Long wrote:
> John Baldwin wrote:
> > Author: jhb
> > Date: Tue Oct 21 18:51:55 2008
> > New Revision: 184135
> > URL: http://svn.freebsd.org/changeset/base/184135
> > 
> > Log:
> >   Restore the default maximum segment size for the bus dma tag to 64k as 
it
> >   is in 6.x and 7.x.  The typo caused 64k transactions to be unnecessarily
> >   split up into two PRD entries.
> > 
> > Modified:
> >   head/sys/dev/ata/ata-dma.c
> > 
> > Modified: head/sys/dev/ata/ata-dma.c
> > 
==============================================================================
> > --- head/sys/dev/ata/ata-dma.c	Tue Oct 21 18:50:52 2008	(r184134)
> > +++ head/sys/dev/ata/ata-dma.c	Tue Oct 21 18:51:55 2008	(r184135)
> > @@ -78,7 +78,7 @@ ata_dmainit(device_t dev)
> >      ch->dma.unload = ata_dmaunload;
> >      ch->dma.alignment = 2;
> >      ch->dma.boundary = 65536;
> > -    ch->dma.segsize = 63536;
> > +    ch->dma.segsize = 65536;
> >      ch->dma.max_iosize = 128 * DEV_BSIZE;
> >      ch->dma.max_address = BUS_SPACE_MAXADDR_32BIT;
> >      ch->dma.dma_slots = 6;
> 
> Not having a multiple-of-512 transfer size is likely more responsible
> for data corruption than having a transfer size near 64k.

This was only in HEAD though since the SATA port multiplier changes.  The code 
in 6.x and 7.x that we were seeing data corruption with at work on Dell 
1435's never had this bug.

-- 
John Baldwin


More information about the svn-src-head mailing list