aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarrick J. Wong <djwong@us.ibm.com>2007-01-11 14:15:12 -0800
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2007-01-13 16:16:41 -0600
commit8f3b8fa9afe75cafc4feb317d305444f6c5271fb (patch)
tree85e34b685559bb295d3df68bbe6476b7614e0c9f
parentc8490f3a77805d04321d9e44486a679801a035b8 (diff)
[SCSI] aic94xx: Don't eat TMF_QUERY_TASK results
In this driver, TMF_QUERY_TASK translates to QUERY_SSP_TASK. The sequencer, it seems, is perfectly happy sending us a SSP response, which this function promptly "converts" into TMF_RESP_FUNC_FAILED. This leads to the SAS EH making bad decisions based on bad data, so we should not perform the conversion in this case. Signed-off-by: Darrick J. Wong <djwong@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-rw-r--r--drivers/scsi/aic94xx/aic94xx_tmf.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/scsi/aic94xx/aic94xx_tmf.c b/drivers/scsi/aic94xx/aic94xx_tmf.c
index 61234384503..fd5269e086a 100644
--- a/drivers/scsi/aic94xx/aic94xx_tmf.c
+++ b/drivers/scsi/aic94xx/aic94xx_tmf.c
@@ -566,6 +566,11 @@ static int asd_initiate_ssp_tmf(struct domain_device *dev, u8 *lun,
res = TMF_RESP_FUNC_ESUPP;
break;
default:
+ if (tmf == TMF_QUERY_TASK) {
+ ASD_DPRINTK("%s: QUERY_SSP_TASK response: 0x%x\n",
+ __FUNCTION__, res);
+ break;
+ }
ASD_DPRINTK("%s: converting result 0x%x to TMF_RESP_FUNC_FAILED\n",
__FUNCTION__, res);
res = TMF_RESP_FUNC_FAILED;