Browse Source

[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>
Darrick J. Wong 18 years ago
parent
commit
8f3b8fa9af
1 changed files with 5 additions and 0 deletions
  1. 5 0
      drivers/scsi/aic94xx/aic94xx_tmf.c

+ 5 - 0
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;