]> err.no Git - linux-2.6/commitdiff
[SCSI] aic94xx: Don't eat TMF_QUERY_TASK results
authorDarrick J. Wong <djwong@us.ibm.com>
Thu, 11 Jan 2007 22:15:12 +0000 (14:15 -0800)
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>
Sat, 13 Jan 2007 22:16:41 +0000 (16:16 -0600)
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>
drivers/scsi/aic94xx/aic94xx_tmf.c

index 61234384503b6ac28bb82216d26cd474a84009e1..fd5269e086a61000af41e06dd13b67cb750eb5fe 100644 (file)
@@ -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;