Re: libata bugfix: preserve LBA bit for HDIO_DRIVE_TASK

Mark Lord
2007-03-31T16:55:52Z

Tejun Heo wrote:
> Mark Lord wrote:
>> Ideally, this would go into linux-2.6.21.
>>
>> Preserve the LBA bit in the DevSel/Head register for HDIO_DRIVE_TASK.
>>
>> Signed-off-by: Mark Lord <mlord@pobox.com>
>> ---
>> --- linux/drivers/ata/libata-scsi.c.orig 2007-03-21
>> 13:35:02.000000000 -0400
>> +++ linux/drivers/ata/libata-scsi.c 2007-03-30 17:40:58.000000000 -0400
>> @@ -333,7 +333,7 @@
>> scsi_cmd[8] = args[3];
>> scsi_cmd[10] = args[4];
>> scsi_cmd[12] = args[5];
>> - scsi_cmd[13] = args[6] & 0x0f;
>> + scsi_cmd[13] = args[6] & 0x4f;
>> scsi_cmd[14] = args[0];
>>
>> /* Good values for timeout and retries? Values below
>
> IDE seems to be just overriding devsel (0x10) and leaving the rest
> alone. Maybe we should do (args[6] & ~0x10) here? Or is it safer this way?

Same thoughts here. I went "conservative" on this one,
because the entire field has been all zeros until this patch,
and I didn't want to trigger any possible latent bugs in libata.

Whatever.

Cheers