diff options
author | Darrick J. Wong <djwong@us.ibm.com> | 2007-01-11 17:15:12 -0500 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2007-01-13 17:16:41 -0500 |
commit | 8f3b8fa9afe75cafc4feb317d305444f6c5271fb (patch) | |
tree | 85e34b685559bb295d3df68bbe6476b7614e0c9f | |
parent | c8490f3a77805d04321d9e44486a679801a035b8 (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.c | 5 |
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; |