libata: minor patch for ATA_DFLAG_PIO
PATCH 1/1 libata: minor patch for ATA_DFLAG_PIO
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.
--
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
drivers/scsi/libata-core.c +1 -1
@@ -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 ;
include/linux/libata.h +6 -3
@@ -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 */
Quoted 35 lines · Albert Lee
Problem:
- With 2.6.17, some PIO-only devices are given DMA commands.Changes:
- Do not clear theATA_DFLAG_PIOflag inata_dev_configure().Original patch by Tejun.
Signed-off-by Albert Lee <[email protected]>--
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.clinux-2.6.17-1/drivers/scsi/libata-core.cdrivers/scsi/libata-core.c +1
-1@@ -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.hlinux-2.6.17-1/include/linux/libata.hinclude/linux/libata.h +0
-0@@ -120,9 +120,12 @@ enum { ATA_SHT_USE_CLUSTERING = 1,
include/linux/libata.h enum { · line 128
Quoted 10 lines
include/linux/libata.h +6
-3/* 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 [email protected]...
Jeff