On Tue, 2011-03-15 at 16:22 -0700, Vasu Dev wrote: > Bhanu, > > I got this patch per latest post at > https://lists.open-fcoe.org/pipermail/devel/2011-January/011063.html and > this is only compile tested, however should work as almost same code > paths in fcoe.ko works. > > Vasu >
If we have your "remove duplicate ema_list init" patch, then the bnx2fc patch is redundant. Same is the case with fcoe patch you submitted earlier, right? > > 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 <[email protected]> > > --- > > > > 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); > > > > _______________________________________________ > > devel mailing list > > [email protected] > > https://lists.open-fcoe.org/mailman/listinfo/devel > > _______________________________________________ devel mailing list [email protected] https://lists.open-fcoe.org/mailman/listinfo/devel
