Lines Matching refs:lp
114 static int fcoe_sw_lport_config(struct fc_lport *lp) in fcoe_sw_lport_config() argument
118 lp->link_up = 0; in fcoe_sw_lport_config()
119 lp->qfull = 0; in fcoe_sw_lport_config()
120 lp->max_retry_count = 3; in fcoe_sw_lport_config()
121 lp->e_d_tov = 2 * 1000; /* FC-FS default */ in fcoe_sw_lport_config()
122 lp->r_a_tov = 2 * 2 * 1000; in fcoe_sw_lport_config()
123 lp->service_params = (FCP_SPPF_INIT_FCN | FCP_SPPF_RD_XRDY_DIS | in fcoe_sw_lport_config()
130 lp->dev_stats[i] = kzalloc(sizeof(struct fcoe_dev_stats), in fcoe_sw_lport_config()
134 fc_lport_config(lp); in fcoe_sw_lport_config()
148 static int fcoe_sw_netdev_config(struct fc_lport *lp, struct net_device *netdev) in fcoe_sw_netdev_config() argument
156 fc = lport_priv(lp); in fcoe_sw_netdev_config()
157 fc->lp = lp; in fcoe_sw_netdev_config()
179 if (fc_set_mfs(lp, mfs)) in fcoe_sw_netdev_config()
182 if (!fcoe_link_ok(lp)) in fcoe_sw_netdev_config()
183 lp->link_up = 1; in fcoe_sw_netdev_config()
187 lp->sg_supp = 1; in fcoe_sw_netdev_config()
198 fc_set_wwnn(lp, wwnn); in fcoe_sw_netdev_config()
201 fc_set_wwpn(lp, wwpn); in fcoe_sw_netdev_config()
235 static int fcoe_sw_shost_config(struct fc_lport *lp, struct Scsi_Host *shost, in fcoe_sw_shost_config() argument
241 lp->host = shost; in fcoe_sw_shost_config()
243 lp->host->max_lun = FCOE_MAX_LUN; in fcoe_sw_shost_config()
244 lp->host->max_id = FCOE_MAX_FCP_TARGET; in fcoe_sw_shost_config()
245 lp->host->max_channel = 0; in fcoe_sw_shost_config()
246 lp->host->transportt = scsi_transport_fcoe_sw; in fcoe_sw_shost_config()
249 rc = scsi_add_host(lp->host, dev); in fcoe_sw_shost_config()
254 sprintf(fc_host_symbolic_name(lp->host), "%s v%s over %s", in fcoe_sw_shost_config()
256 fcoe_netdev(lp)->name); in fcoe_sw_shost_config()
267 static inline int fcoe_sw_em_config(struct fc_lport *lp) in fcoe_sw_em_config() argument
269 BUG_ON(lp->emp); in fcoe_sw_em_config()
271 lp->emp = fc_exch_mgr_alloc(lp, FC_CLASS_3, in fcoe_sw_em_config()
273 if (!lp->emp) in fcoe_sw_em_config()
288 struct fc_lport *lp = NULL; in fcoe_sw_destroy() local
297 lp = fcoe_hostlist_lookup(netdev); in fcoe_sw_destroy()
298 if (!lp) in fcoe_sw_destroy()
301 fc = lport_priv(lp); in fcoe_sw_destroy()
304 fc_fabric_logoff(lp); in fcoe_sw_destroy()
307 fcoe_hostlist_remove(lp); in fcoe_sw_destroy()
313 fc_lport_destroy(lp); in fcoe_sw_destroy()
314 fc_fcp_destroy(lp); in fcoe_sw_destroy()
317 fc_remove_host(lp->host); in fcoe_sw_destroy()
318 scsi_remove_host(lp->host); in fcoe_sw_destroy()
321 if (lp->emp) in fcoe_sw_destroy()
322 fc_exch_mgr_free(lp->emp); in fcoe_sw_destroy()
333 fcoe_percpu_clean(lp); in fcoe_sw_destroy()
336 fcoe_clean_pending_queue(lp); in fcoe_sw_destroy()
340 kfree(lp->dev_stats[cpu]); in fcoe_sw_destroy()
344 scsi_host_put(lp->host); in fcoe_sw_destroy()
365 struct fc_lport *lp = NULL; in fcoe_sw_create() local
374 lp = fcoe_hostlist_lookup(netdev); in fcoe_sw_create()
375 if (lp) in fcoe_sw_create()
384 lp = shost_priv(shost); in fcoe_sw_create()
385 fc = lport_priv(lp); in fcoe_sw_create()
388 rc = fcoe_sw_lport_config(lp); in fcoe_sw_create()
395 rc = fcoe_sw_netdev_config(lp, netdev); in fcoe_sw_create()
402 rc = fcoe_sw_shost_config(lp, shost, &netdev->dev); in fcoe_sw_create()
409 rc = fcoe_sw_em_config(lp); in fcoe_sw_create()
416 rc = fcoe_libfc_config(lp, &fcoe_sw_libfc_fcn_templ); in fcoe_sw_create()
423 fcoe_hostlist_add(lp); in fcoe_sw_create()
425 lp->boot_time = jiffies; in fcoe_sw_create()
427 fc_fabric_login(lp); in fcoe_sw_create()
434 fc_exch_mgr_free(lp->emp); /* Free the EM */ in fcoe_sw_create()
436 scsi_host_put(lp->host); in fcoe_sw_create()