[SCSI] stex: Fix for potential invalid response
authorEd Lin - PTU <ed.lin@promise.com>
Mon, 26 Jan 2009 10:40:11 +0000 (02:40 -0800)
committerJames Bottomley <James.Bottomley@HansenPartnership.com>
Thu, 12 Mar 2009 17:58:03 +0000 (12:58 -0500)
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>
drivers/scsi/stex.c

index a3a18ad7312527acd35536c5b9a2f42a7370454a..6129db4a6a3865e4de9cc7a59f719a39df948155 100644 (file)
@@ -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;