[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4729B3EA.6040707@garzik.org>
Date: Thu, 01 Nov 2007 07:09:30 -0400
From: Jeff Garzik <jeff@...zik.org>
To: Alan Cox <alan@...rguk.ukuu.org.uk>
CC: Jens Axboe <jens.axboe@...cle.com>, Daniel Drake <dsd@...too.org>,
linux list <linux-kernel@...r.kernel.org>,
linux-ide@...r.kernel.org, Tejun Heo <htejun@...il.com>,
Albert Lee <albertcc@...ibm.com>
Subject: Re: "Fix ATAPI transfer lengths" causes CD writing regression
Alan Cox wrote:
>> demonstrated by (a) Alan's patch did not change DMA lbam/lbah
>> programming and (b) Daniel's report of the message "ata2.00: 66 bytes
>
> (a) did. Well the original did, dunno about your version.
We are both half-right. I reverted my version of that completely,
applied your version verbatim, and pushed it upstream. The result:
atapi_xlat _did_ start programming lbam/lbah for DMA (another behavior
change), but request-sense DMA path was not changed to program lba[mh]
for DMA.
>> I am not drawing any conclusions yet, but I'm thinking that blimit=8k
>> may be a better choice for SATA ATAPI.
>
> Only if your transfer is actually 8K or more.
No, that's precisely the problem cause for what Daniel is reporting. We
are setting blimit=xfer_len(==10), when the device wants to return more
than 10 bytes. When set to the old limit (8k), the problem didn't occur.
Prior to this change, __atapi_pio_bytes() happily discarded trailing
data, so the software already knows how to eat trailing data left to us
by the ATAPI device. The printk (and lack of problem) indicated that
this code was active and working fine.
Jeff
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists