Messages in this thread | | | Subject | Re: [PATCH] bnx2fc: setup em for npiv port | From | "Bhanu Gollapudi" <> | Date | Wed, 23 Mar 2011 17:29:35 -0700 |
| |
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@intel.com> > ---
James,
We have tested this, and would like to ack it.
Thanks, Bhanu
> > 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); > >
| |