aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
authorKaren Higgins <karen.higgins@qlogic.com>2009-07-15 16:03:01 -0400
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2009-07-30 09:50:01 -0400
commit612f73488785829d4f34aad00bfe30b904c94c9e (patch)
treeecd72c97495798efeb209c63de4607a94059da1b /drivers/scsi
parentdca05c4c07c48da0509708d9e562578d269e90e5 (diff)
[SCSI] qla4xxx: Fix srb lookup in qla4xxx_eh_device_reset
eh_device_reset may be called from scsi error handler or sg_reset, etc. When called from sg_reset, there will not be an associated srb. The driver should lookup the corresponding device handle given information from the supplied cmd structure and should not assume that there exists an srb. Signed-off-by: Karen Higgins <karen.higgins@qlogic.com> Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi')
-rw-r--r--drivers/scsi/qla4xxx/ql4_os.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c
index e1cc0d21d890..40e3cafb3a9c 100644
--- a/drivers/scsi/qla4xxx/ql4_os.c
+++ b/drivers/scsi/qla4xxx/ql4_os.c
@@ -1543,11 +1543,9 @@ static int qla4xxx_eh_device_reset(struct scsi_cmnd *cmd)
1543{ 1543{
1544 struct scsi_qla_host *ha = to_qla_host(cmd->device->host); 1544 struct scsi_qla_host *ha = to_qla_host(cmd->device->host);
1545 struct ddb_entry *ddb_entry = cmd->device->hostdata; 1545 struct ddb_entry *ddb_entry = cmd->device->hostdata;
1546 struct srb *sp;
1547 int ret = FAILED, stat; 1546 int ret = FAILED, stat;
1548 1547
1549 sp = (struct srb *) cmd->SCp.ptr; 1548 if (!ddb_entry)
1550 if (!sp || !ddb_entry)
1551 return ret; 1549 return ret;
1552 1550
1553 dev_info(&ha->pdev->dev, 1551 dev_info(&ha->pdev->dev,