On Tue, 2011-03-15 at 16:13 -0700, Vasu Dev wrote: > Use fc_exch_mgr_list_clone to setup em for npiv port. > > Also remove redundant vport and lport initializations. > > Signed-off-by: Vasu Dev <vasu.dev@xxxxxxxxx> Acked-by: Bhanu Prakash Gollapudi <bprakash@xxxxxxxxxxxx> > --- > > drivers/scsi/bnx2fc/bnx2fc_fcoe.c | 29 +++++++++++++++-------------- > 1 files changed, 15 insertions(+), 14 deletions(-) > > diff --git a/drivers/scsi/bnx2fc/bnx2fc_fcoe.c b/drivers/scsi/bnx2fc/bnx2fc_fcoe.c > index e476e87..71842a7 100644 > --- a/drivers/scsi/bnx2fc/bnx2fc_fcoe.c > +++ b/drivers/scsi/bnx2fc/bnx2fc_fcoe.c > @@ -1296,20 +1296,17 @@ setup_err: > static struct fc_lport *bnx2fc_if_create(struct bnx2fc_hba *hba, > struct device *parent, int npiv) > { > - struct fc_lport *lport = NULL; > + struct fc_lport *lport, *n_port; > struct fcoe_port *port; > struct Scsi_Host *shost; > struct fc_vport *vport = dev_to_vport(parent); > int rc = 0; > > /* Allocate Scsi_Host structure */ > - if (!npiv) { > - lport = libfc_host_alloc(&bnx2fc_shost_template, > - sizeof(struct fcoe_port)); > - } else { > - lport = libfc_vport_create(vport, > - sizeof(struct fcoe_port)); > - } > + if (!npiv) > + lport = libfc_host_alloc(&bnx2fc_shost_template, sizeof(*port)); > + else > + lport = libfc_vport_create(vport, sizeof(*port)); > > if (!lport) { > printk(KERN_ERR PFX "could not allocate scsi host structure\n"); > @@ -1327,7 +1324,6 @@ static struct fc_lport *bnx2fc_if_create(struct bnx2fc_hba *hba, > goto lp_config_err; > > if (npiv) { > - vport = dev_to_vport(parent); > printk(KERN_ERR PFX "Setting vport names, 0x%llX 0x%llX\n", > vport->node_name, vport->port_name); > fc_set_wwnn(lport, vport->node_name); > @@ -1356,12 +1352,17 @@ static struct fc_lport *bnx2fc_if_create(struct bnx2fc_hba *hba, > fc_host_port_type(lport->host) = FC_PORTTYPE_UNKNOWN; > > /* Allocate exchange manager */ > - if (!npiv) { > + if (!npiv) > rc = bnx2fc_em_config(lport); > - if (rc) { > - printk(KERN_ERR PFX "Error on bnx2fc_em_config\n"); > - goto shost_err; > - } > + else { > + shost = vport_to_shost(vport); > + n_port = shost_priv(shost); > + rc = fc_exch_mgr_list_clone(n_port, lport); > + } > + > + if (rc) { > + printk(KERN_ERR PFX "Error on bnx2fc_em_config\n"); > + goto shost_err; > } > > bnx2fc_interface_get(hba); > > -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html