aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/stex.c
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 /drivers/scsi/stex.c
parenta4976d688650b4593831fbffbb217f2d916b1aa0 (diff)
downloadkernel_samsung_smdk4412-dd48ebf7ca4a6e60e6787e443f5316724309865b.zip
kernel_samsung_smdk4412-dd48ebf7ca4a6e60e6787e443f5316724309865b.tar.gz
kernel_samsung_smdk4412-dd48ebf7ca4a6e60e6787e443f5316724309865b.tar.bz2
[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 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;