Re: "Fix ATAPI transfer lengths" causes CD writing regression

Jeff Garzik
2007-10-31T12:20:31Z

Jens Axboe wrote:
> On Wed, Oct 31 2007, Alan Cox wrote:
>> On Tue, 30 Oct 2007 19:21:29 +0000
>> Daniel Drake <dsd@gentoo.org> wrote:
>>
>>> Alan Cox wrote:
>>>> I would guess Brasero is issuing a command with the length of data
>>>> wrongly set. In the old code that might well just produce errors of the
>>>> "Umm wtf is this data left over for ?", with the new code the drive is
>>>> likely to change state as it knows the transfer size and that will
>>>> *correctly* cause an HSM error and what follows.
>>>>
>>>> Now the question is who gets the length wrong - Brasero or the ata
>>>> translation code in libata
>>> Brasero does exactly the same as my test app which I attached to my last
>>> mail. Is my test app wrong?
>> Would need to double check the SCSI specificatons to be sure but I think
>> you are asking for less data than the drive wishes to provide. You
>> aren't allowed to do that with ATA.
>
> ide-cd handles this by throwing the excess away, which I think is the
> sane way to do this.

That's easy for the PIO case. But CD writing is normally DMA, which
means you will get a DMA engine exception if the device wants to give
you more data than the scatter/gather entries permit.

Jeff