diff options
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_init.c')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_init.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c index 1a25714e85c6..a6d2559217cd 100644 --- a/drivers/scsi/qla2xxx/qla_init.c +++ b/drivers/scsi/qla2xxx/qla_init.c | |||
@@ -2068,21 +2068,24 @@ qla2x00_reg_remote_port(scsi_qla_host_t *ha, fc_port_t *fcport) | |||
2068 | rport_ids.port_id = fcport->d_id.b.domain << 16 | | 2068 | rport_ids.port_id = fcport->d_id.b.domain << 16 | |
2069 | fcport->d_id.b.area << 8 | fcport->d_id.b.al_pa; | 2069 | fcport->d_id.b.area << 8 | fcport->d_id.b.al_pa; |
2070 | rport_ids.roles = FC_RPORT_ROLE_UNKNOWN; | 2070 | rport_ids.roles = FC_RPORT_ROLE_UNKNOWN; |
2071 | fcport->rport = rport = fc_remote_port_add(ha->host, 0, &rport_ids); | ||
2072 | if (!rport) { | ||
2073 | qla_printk(KERN_WARNING, ha, | ||
2074 | "Unable to allocate fc remote port!\n"); | ||
2075 | return; | ||
2076 | } | ||
2077 | rport->dd_data = fcport; | ||
2078 | |||
2079 | rport_ids.roles = FC_RPORT_ROLE_UNKNOWN; | ||
2071 | if (fcport->port_type == FCT_INITIATOR) | 2080 | if (fcport->port_type == FCT_INITIATOR) |
2072 | rport_ids.roles |= FC_RPORT_ROLE_FCP_INITIATOR; | 2081 | rport_ids.roles |= FC_RPORT_ROLE_FCP_INITIATOR; |
2073 | if (fcport->port_type == FCT_TARGET) | 2082 | if (fcport->port_type == FCT_TARGET) |
2074 | rport_ids.roles |= FC_RPORT_ROLE_FCP_TARGET; | 2083 | rport_ids.roles |= FC_RPORT_ROLE_FCP_TARGET; |
2075 | 2084 | fc_remote_port_rolechg(rport, rport_ids.roles); | |
2076 | fcport->rport = rport = fc_remote_port_add(ha->host, 0, &rport_ids); | ||
2077 | if (!rport) | ||
2078 | qla_printk(KERN_WARNING, ha, | ||
2079 | "Unable to allocate fc remote port!\n"); | ||
2080 | 2085 | ||
2081 | if (rport->scsi_target_id != -1 && | 2086 | if (rport->scsi_target_id != -1 && |
2082 | rport->scsi_target_id < ha->host->max_id) | 2087 | rport->scsi_target_id < ha->host->max_id) |
2083 | fcport->os_target_id = rport->scsi_target_id; | 2088 | fcport->os_target_id = rport->scsi_target_id; |
2084 | |||
2085 | rport->dd_data = fcport; | ||
2086 | } | 2089 | } |
2087 | 2090 | ||
2088 | /* | 2091 | /* |