Albert Lee wrote:
Problem:
- With 2.6.17, some PIO-only devices are given DMA commands.
Changes:
- Do not clear the ATA_DFLAG_PIO flag in ata_dev_configure().
Original patch by Tejun.
Signed-off-by: Albert Lee <albertcc@xxxxxxxxxx>
--
The patch is done by Tejun and already in libata-dev upstream.
Maybe we also need this for 2.6.17.
For your review, thanks.
albert
diff -Nrup linux-2.6.17-0/drivers/scsi/libata-core.c linux-2.6.17-1/drivers/scsi/libata-core.c
--- linux-2.6.17-0/drivers/scsi/libata-core.c 2006-06-18 09:49:35.000000000 +0800
+++ linux-2.6.17-1/drivers/scsi/libata-core.c 2006-06-20 16:56:14.000000000 +0800
@@ -1229,7 +1229,7 @@ static int ata_dev_configure(struct ata_
id[84], id[85], id[86], id[87], id[88]);
/* initialize to-be-configured parameters */
- dev->flags = 0;
+ dev->flags &= ~ATA_DFLAG_CFG_MASK;
dev->max_sectors = 0;
dev->cdb_len = 0;
dev->n_sectors = 0;
diff -Nrup linux-2.6.17-0/include/linux/libata.h linux-2.6.17-1/include/linux/libata.h
--- linux-2.6.17-0/include/linux/libata.h 2006-06-18 09:49:35.000000000 +0800
+++ linux-2.6.17-1/include/linux/libata.h 2006-06-20 16:55:41.000000000 +0800
@@ -120,9 +120,12 @@ enum {
ATA_SHT_USE_CLUSTERING = 1,
/* struct ata_device stuff */
- ATA_DFLAG_LBA48 = (1 << 0), /* device supports LBA48 */
- ATA_DFLAG_PIO = (1 << 1), /* device currently in PIO mode */
- ATA_DFLAG_LBA = (1 << 2), /* device supports LBA */
+ ATA_DFLAG_LBA = (1 << 0), /* device supports LBA */
+ ATA_DFLAG_LBA48 = (1 << 1), /* device supports LBA48 */
+
+ ATA_DFLAG_CFG_MASK = (1 << 8) - 1,
+
+ ATA_DFLAG_PIO = (1 << 8), /* device currently in PIO mode */
ACK for 2.6.17, if you would like to send it to stable@xxxxxxxxxxxxx
Jeff
-
: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html