aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/stex.c
diff options
context:
space:
mode:
authorEd Lin - PTU <ed.lin@promise.com>2009-01-26 05:40:11 -0500
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2009-03-12 13:58:03 -0400
commitdd48ebf7ca4a6e60e6787e443f5316724309865b (patch)
treea9cba8a221e0c03f5457e23510fc014a772cbe38 /drivers/scsi/stex.c
parenta4976d688650b4593831fbffbb217f2d916b1aa0 (diff)
[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>
Diffstat (limited to 'drivers/scsi/stex.c')
-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)
746 stex_copy_data(ccb, resp, size); 746 stex_copy_data(ccb, resp, size);
747 } 747 }
748 748
749 ccb->req = NULL;
749 ccb->srb_status = resp->srb_status; 750 ccb->srb_status = resp->srb_status;
750 ccb->scsi_status = resp->scsi_status; 751 ccb->scsi_status = resp->scsi_status;
751 752