Remove the ATA_PROT_PIO_MULT protocol. Signed-off-by: Albert Lee <albertcc@xxxxxxxxxx> --- The ATA_PROT_PIO_MULT can be handled as ATA_PROT_PIO. Remove it. Changes: - Remove the ATA_PROT_PIO_MULT protocol - Filter out the PIO multi commands in ATA pass through Patch against the upstream branch (fb21f0d0ec7e31cc814165e1a9d2662d9c9dd980). For your review, thanks, Albert --- upstream/include/linux/ata.h 2006-03-16 17:23:56.000000000 +0800 +++ upstream2/include/linux/ata.h 2006-03-16 17:25:25.000000000 +0800 @@ -204,7 +204,6 @@ enum ata_tf_protocols { ATA_PROT_UNKNOWN, /* unknown/invalid */ ATA_PROT_NODATA, /* no data */ ATA_PROT_PIO, /* PIO single sector */ - ATA_PROT_PIO_MULT, /* PIO multiple sector */ ATA_PROT_DMA, /* DMA */ ATA_PROT_ATAPI, /* packet command, PIO data xfer*/ ATA_PROT_ATAPI_NODATA, /* packet command, no data */ --- upstream/drivers/scsi/libata-scsi.c 2006-03-16 17:23:51.000000000 +0800 +++ upstream2/drivers/scsi/libata-scsi.c 2006-03-16 17:42:00.000000000 +0800 @@ -2356,9 +2356,6 @@ ata_scsi_map_proto(u8 byte1) case 4: /* PIO Data-in */ case 5: /* PIO Data-out */ - if (byte1 & 0xe0) { - return ATA_PROT_PIO_MULT; - } return ATA_PROT_PIO; case 10: /* Device Reset */ @@ -2397,6 +2394,10 @@ ata_scsi_pass_thru(struct ata_queued_cmd if ((tf->protocol = ata_scsi_map_proto(scsicmd[1])) == ATA_PROT_UNKNOWN) goto invalid_fld; + if (scsicmd[1] & 0xe0) + /* PIO multi not supported yet */ + goto invalid_fld; + /* * 12 and 16 byte CDBs use different offsets to * provide the various register values. --- upstream/drivers/scsi/libata-core.c 2006-03-16 17:23:51.000000000 +0800 +++ upstream2/drivers/scsi/libata-core.c 2006-03-16 17:25:25.000000000 +0800 @@ -3905,7 +3905,6 @@ static inline int ata_should_dma_map(str case ATA_PROT_ATAPI: case ATA_PROT_PIO: - case ATA_PROT_PIO_MULT: if (ap->flags & ATA_FLAG_PIO_DMA) return 1; - : 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