Re: libata bugfix: preserve LBA bit for HDIO_DRIVE_TASK

From: Mark Lord
Date: Sat Mar 31 2007 - 12:56:18 EST


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@xxxxxxxxx>
---
--- 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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/