summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEd Lin - PTU <ed.lin@promise.com>2009-01-26 02:40:11 -0800
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2009-03-12 12:58:03 -0500
commitdd48ebf7ca4a6e60e6787e443f5316724309865b (patch)
treea9cba8a221e0c03f5457e23510fc014a772cbe38
parenta4976d688650b4593831fbffbb217f2d916b1aa0 (diff)
downloadlinux-dd48ebf7ca4a6e60e6787e443f5316724309865b.tar.gz
linux-dd48ebf7ca4a6e60e6787e443f5316724309865b.tar.bz2
linux-dd48ebf7ca4a6e60e6787e443f5316724309865b.zip
[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 a3a18ad73125..6129db4a6a38 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;