summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Vasquez <andrew.vasquez@qlogic.com>2005-07-14 16:40:04 -0700
committerChris Wright <chrisw@osdl.org>2005-08-05 00:04:14 -0700
commit50eb930a92e7070f6a110789245398bff4061059 (patch)
treeccc055cf0f2f2e22eb0011ddef304a5b167067a2
parentab998a6790272b6f45a63d9ef763efd435eae23a (diff)
[PATCH] qla2xxx: Correct handling of fc_remote_port_add() failure case.
Correct handling of fc_remote_port_add() failure case. Immediately return if fc_remote_port_add() fails to allocate resources for the rport. Original code would result in NULL pointer dereference upon failure. Reported-by: Michael Reed <mdr@sgi.com> Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: Chris Wright <chrisw@osdl.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/scsi/qla2xxx/qla_init.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
index 0387005fcb6d..4d624881e2bc 100644
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -1914,9 +1914,11 @@ qla2x00_reg_remote_port(scsi_qla_host_t *ha, fc_port_t *fcport)
rport_ids.roles |= FC_RPORT_ROLE_FCP_TARGET;
fcport->rport = rport = fc_remote_port_add(ha->host, 0, &rport_ids);
- if (!rport)
+ if (!rport) {
qla_printk(KERN_WARNING, ha,
"Unable to allocate fc remote port!\n");
+ return;
+ }
if (rport->scsi_target_id != -1 && rport->scsi_target_id < MAX_TARGETS)
fcport->os_target_id = rport->scsi_target_id;