summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTejun Heo <htejun@gmail.com>2006-06-23 12:49:52 +0800
committerChris Wright <chrisw@sous-sol.org>2006-06-29 17:17:16 -0700
commitf92b235f72be34e66357df72794f2baa0221524d (patch)
tree21b7438ea27994b35afcf412a1e73df315e30b48
parent4f75bf81d40d4c5b459343ef34d05478b8bed47d (diff)
downloadlwn-f92b235f72be34e66357df72794f2baa0221524d.tar.gz
lwn-f92b235f72be34e66357df72794f2baa0221524d.zip
[PATCH] libata: minor patch for ATA_DFLAG_PIO
Problem: - With 2.6.17 libata, some PIO-only devices are given DMA commands. Changes: - Do not clear the ATA_DFLAG_PIO flag in ata_dev_configure(). Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Albert Lee <albertcc@tw.ibm.com> Signed-off-by: Chris Wright <chrisw@sous-sol.org>
-rw-r--r--drivers/scsi/libata-core.c2
-rw-r--r--include/linux/libata.h9
2 files changed, 7 insertions, 4 deletions
diff --git a/drivers/scsi/libata-core.c b/drivers/scsi/libata-core.c
index b046ffa22101..6cd197d4474f 100644
--- a/drivers/scsi/libata-core.c
+++ b/drivers/scsi/libata-core.c
@@ -1229,7 +1229,7 @@ static int ata_dev_configure(struct ata_port *ap, struct ata_device *dev,
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 --git a/include/linux/libata.h b/include/linux/libata.h
index b80d2e7fa6d2..05d3fb33b06f 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -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 */
ATA_DEV_UNKNOWN = 0, /* unknown device */
ATA_DEV_ATA = 1, /* ATA device */