aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDarrick J. Wong <djwong@us.ibm.com>2007-01-11 17:15:12 -0500
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2007-01-13 17:16:41 -0500
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 61234384503b..fd5269e086a6 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,
566 res = TMF_RESP_FUNC_ESUPP; 566 res = TMF_RESP_FUNC_ESUPP;
567 break; 567 break;
568 default: 568 default:
569 if (tmf == TMF_QUERY_TASK) {
570 ASD_DPRINTK("%s: QUERY_SSP_TASK response: 0x%x\n",
571 __FUNCTION__, res);
572 break;
573 }
569 ASD_DPRINTK("%s: converting result 0x%x to TMF_RESP_FUNC_FAILED\n", 574 ASD_DPRINTK("%s: converting result 0x%x to TMF_RESP_FUNC_FAILED\n",
570 __FUNCTION__, res); 575 __FUNCTION__, res);
571 res = TMF_RESP_FUNC_FAILED; 576 res = TMF_RESP_FUNC_FAILED;