From d7c07af03cdb972d5b43bdd1807d022d0eb4fec2 Mon Sep 17 00:00:00 2001 From: Albert Lee Date: Thu, 7 Jun 2007 16:01:17 +0800 Subject: [PATCH] --- yaml --- r: 57558 b: refs/heads/master c: 2c3d2a46f1ccf591850b20f4fdde12bcf2bf3dfd h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/ata/libata-scsi.c | 22 ++++++++++++++++------ trunk/include/linux/ata.h | 1 + 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index 212e6a2f2667..10d53a223cbf 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: fa4453c4c94a61bbefe470b16ddbb6218481c6dc +refs/heads/master: 2c3d2a46f1ccf591850b20f4fdde12bcf2bf3dfd diff --git a/trunk/drivers/ata/libata-scsi.c b/trunk/drivers/ata/libata-scsi.c index 884f52f43f8f..c228df298bd8 100644 --- a/trunk/drivers/ata/libata-scsi.c +++ b/trunk/drivers/ata/libata-scsi.c @@ -1363,12 +1363,22 @@ static void ata_scsi_qc_complete(struct ata_queued_cmd *qc) * schedule EH_REVALIDATE operation to update the IDENTIFY DEVICE * cache */ - if (ap->ops->error_handler && - !need_sense && (qc->tf.command == ATA_CMD_SET_FEATURES) && - ((qc->tf.feature == SETFEATURES_WC_ON) || - (qc->tf.feature == SETFEATURES_WC_OFF))) { - ap->eh_info.action |= ATA_EH_REVALIDATE; - ata_port_schedule_eh(ap); + if (ap->ops->error_handler && !need_sense) { + switch (qc->tf.command) { + case ATA_CMD_SET_FEATURES: + if ((qc->tf.feature == SETFEATURES_WC_ON) || + (qc->tf.feature == SETFEATURES_WC_OFF)) { + ap->eh_info.action |= ATA_EH_REVALIDATE; + ata_port_schedule_eh(ap); + } + break; + + case ATA_CMD_INIT_DEV_PARAMS: /* CHS translation changed */ + case ATA_CMD_SET_MULTI: /* multi_count changed */ + ap->eh_info.action |= ATA_EH_REVALIDATE; + ata_port_schedule_eh(ap); + break; + } } /* For ATA pass thru (SAT) commands, generate a sense block if diff --git a/trunk/include/linux/ata.h b/trunk/include/linux/ata.h index 3e95e5c402d4..703febb2df31 100644 --- a/trunk/include/linux/ata.h +++ b/trunk/include/linux/ata.h @@ -151,6 +151,7 @@ enum { ATA_CMD_WRITE_MULTI_EXT = 0x39, ATA_CMD_WRITE_MULTI_FUA_EXT = 0xCE, ATA_CMD_SET_FEATURES = 0xEF, + ATA_CMD_SET_MULTI = 0xC6, ATA_CMD_PACKET = 0xA0, ATA_CMD_VERIFY = 0x40, ATA_CMD_VERIFY_EXT = 0x42,