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 <[EMAIL PROTECTED]>
---
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 6123438..fd5269e 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 d
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;
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html