[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 a3a18ad..6129db4 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;