summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEd Lin - PTU <ed.lin@promise.com>2009-01-26 10:40:11 (GMT)
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2009-03-12 17:58:03 (GMT)
commitdd48ebf7ca4a6e60e6787e443f5316724309865b (patch)
treea9cba8a221e0c03f5457e23510fc014a772cbe38
parenta4976d688650b4593831fbffbb217f2d916b1aa0 (diff)
downloadlinux-fsl-qoriq-dd48ebf7ca4a6e60e6787e443f5316724309865b.tar.xz
[SCSI] stex: Fix for potential invalid response
The interrupt routine is good for normal cases. However, if the firmware is abnormal and returns an invalid response, the driver may reuse a ccb structure that has already been handled. This may cause problem. Fix this by setting the req member to NULL. Next time we know the response is invalid and handle accordingly if req is NULL. Signed-off-by: Ed Lin <ed.lin@promise.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
-rw-r--r--drivers/scsi/stex.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/scsi/stex.c b/drivers/scsi/stex.c
index a3a18ad..6129db4 100644
--- a/drivers/scsi/stex.c
+++ b/drivers/scsi/stex.c
@@ -746,6 +746,7 @@ static void stex_mu_intr(struct st_hba *hba, u32 doorbell)
stex_copy_data(ccb, resp, size);
}
+ ccb->req = NULL;
ccb->srb_status = resp->srb_status;
ccb->scsi_status = resp->scsi_status;