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-all
mailing list