diff options
author | Darrick J. Wong <djwong@us.ibm.com> | 2007-01-11 23:15:12 +0100 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2007-01-13 23:16:41 +0100 |
commit | 8f3b8fa9afe75cafc4feb317d305444f6c5271fb (patch) | |
tree | 85e34b685559bb295d3df68bbe6476b7614e0c9f /drivers/scsi/aic94xx | |
parent | [SCSI] libsas: Use SCAN_WILD_CARD instead of ~0 (diff) | |
download | linux-8f3b8fa9afe75cafc4feb317d305444f6c5271fb.tar.xz linux-8f3b8fa9afe75cafc4feb317d305444f6c5271fb.zip |
[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>
Diffstat (limited to 'drivers/scsi/aic94xx')
-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, 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; |