Date: Tue, 21 Oct 2008 17:02:21 -0400 From: John Baldwin <jhb@freebsd.org> To: Scott Long <scottl@samsco.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r184135 - head/sys/dev/ata Message-ID: <200810211702.21348.jhb@freebsd.org> In-Reply-To: <48FE41D2.90602@samsco.org> References: <200810211851.m9LIptwg006141@svn.freebsd.org> <48FE41D2.90602@samsco.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200810211702.21348.jhb>