From owner-freebsd-current Tue Jan 4 15:36:51 2000 Delivered-To: freebsd-current@freebsd.org Received: from 1Cust240.tnt3.washington.dc.da.uu.net (localhost [127.0.0.1]) by hub.freebsd.org (Postfix) with ESMTP id 8BE2814E0A; Tue, 4 Jan 2000 15:36:48 -0800 (PST) (envelope-from green@FreeBSD.org) Date: Tue, 4 Jan 2000 18:36:44 -0500 (EST) From: Brian Fundakowski Feldman X-Sender: green@green.dyndns.org To: Soren Schmidt Cc: current@FreeBSD.org Subject: Re: ATA atapi-all.c problems/fixes/cleanups In-Reply-To: <200001040813.JAA84062@freebsd.dk> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=ISO-8859-1 Content-Transfer-Encoding: 8BIT Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On Tue, 4 Jan 2000, Soren Schmidt wrote: > The problem here is that you will then do a lot of unneeded padding > as the driver will attempt to pad to the blocksize used which is not > wanted. You HAVE to use the right blocksize especially for audio, or > you will get "silent" ie zero padded blocks on disk, and thats not > what you want is it ? I used a multiple of the blocksize, and it works fine, except for on the very last bit of data. The very last bit of data is what causes an underrun, and the code that's there for overrun/underrun is wrong right now. For underrun, it ends up writing the underlying blocksize length from the user buffer of _less_than_that_size_, then it writes (blocksize - user buffer size) _more_ zeroed data! This promptly locks up the IDE bus with my CD-R. That's what the patch was about and you didn't say anything about; yes, I know that blocksizes should be matched perfectly and padded perfectly to prevent the ATA driver from having to handle the underrun/overrun cases, but the current handling is/was still broken. > > -Søren > -- Brian Fundakowski Feldman \ FreeBSD: The Power to Serve! / green@FreeBSD.org `------------------------------' To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message