diff options
author | Ed Lin - PTU <ed.lin@promise.com> | 2009-01-26 05:40:11 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2009-03-12 13:58:03 -0400 |
commit | dd48ebf7ca4a6e60e6787e443f5316724309865b (patch) | |
tree | a9cba8a221e0c03f5457e23510fc014a772cbe38 /drivers/scsi/stex.c | |
parent | a4976d688650b4593831fbffbb217f2d916b1aa0 (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.c | 1 |
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 | ||