Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Functions
lpfc_hbadisc.c File Reference
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/slab.h>
#include <linux/pci.h>
#include <linux/kthread.h>
#include <linux/interrupt.h>
#include <scsi/scsi.h>
#include <scsi/scsi_device.h>
#include <scsi/scsi_host.h>
#include <scsi/scsi_transport_fc.h>
#include "lpfc_hw4.h"
#include "lpfc_hw.h"
#include "lpfc_nl.h"
#include "lpfc_disc.h"
#include "lpfc_sli.h"
#include "lpfc_sli4.h"
#include "lpfc_scsi.h"
#include "lpfc.h"
#include "lpfc_logmsg.h"
#include "lpfc_crtn.h"
#include "lpfc_vport.h"
#include "lpfc_debugfs.h"

Go to the source code of this file.

Functions

void lpfc_terminate_rport_io (struct fc_rport *rport)
 
void lpfc_dev_loss_tmo_callbk (struct fc_rport *rport)
 
struct lpfc_fast_path_eventlpfc_alloc_fast_evt (struct lpfc_hba *phba)
 
void lpfc_free_fast_evt (struct lpfc_hba *phba, struct lpfc_fast_path_event *evt)
 
int lpfc_do_work (void *p)
 
int lpfc_workq_post_event (struct lpfc_hba *phba, void *arg1, void *arg2, uint32_t evt)
 
void lpfc_cleanup_rpis (struct lpfc_vport *vport, int remove)
 
void lpfc_port_link_failure (struct lpfc_vport *vport)
 
void lpfc_linkdown_port (struct lpfc_vport *vport)
 
int lpfc_linkdown (struct lpfc_hba *phba)
 
void lpfc_sli4_clear_fcf_rr_bmask (struct lpfc_hba *phba)
 
int lpfc_check_pending_fcoe_event (struct lpfc_hba *phba, uint8_t unreg_fcf)
 
int lpfc_sli4_fcf_rr_next_proc (struct lpfc_vport *vport, uint16_t fcf_index)
 
void lpfc_sli4_set_fcf_flogi_fail (struct lpfc_hba *phba, uint16_t fcf_index)
 
int lpfc_sli4_fcf_pri_list_add (struct lpfc_hba *phba, uint16_t fcf_index, struct fcf_record *new_fcf_record)
 
void lpfc_mbx_cmpl_fcf_scan_read_fcf_rec (struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq)
 
void lpfc_mbx_cmpl_fcf_rr_read_fcf_rec (struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq)
 
void lpfc_mbx_cmpl_read_fcf_rec (struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq)
 
void lpfc_init_vfi_cmpl (struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq)
 
void lpfc_issue_init_vfi (struct lpfc_vport *vport)
 
void lpfc_init_vpi_cmpl (struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq)
 
void lpfc_issue_init_vpi (struct lpfc_vport *vport)
 
void lpfc_start_fdiscs (struct lpfc_hba *phba)
 
void lpfc_mbx_cmpl_reg_vfi (struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq)
 
void lpfc_mbx_cmpl_read_topology (struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb)
 
void lpfc_mbx_cmpl_reg_login (struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb)
 
int lpfc_mbx_unreg_vpi (struct lpfc_vport *vport)
 
void lpfc_create_static_vport (struct lpfc_hba *phba)
 
void lpfc_mbx_cmpl_fabric_reg_login (struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb)
 
void lpfc_mbx_cmpl_ns_reg_login (struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb)
 
void lpfc_nlp_set_state (struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, int state)
 
void lpfc_enqueue_node (struct lpfc_vport *vport, struct lpfc_nodelist *ndlp)
 
void lpfc_dequeue_node (struct lpfc_vport *vport, struct lpfc_nodelist *ndlp)
 
struct lpfc_nodelistlpfc_enable_node (struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, int state)
 
void lpfc_drop_node (struct lpfc_vport *vport, struct lpfc_nodelist *ndlp)
 
void lpfc_set_disctmo (struct lpfc_vport *vport)
 
int lpfc_can_disctmo (struct lpfc_vport *vport)
 
int lpfc_check_sli_ndlp (struct lpfc_hba *phba, struct lpfc_sli_ring *pring, struct lpfc_iocbq *iocb, struct lpfc_nodelist *ndlp)
 
void lpfc_nlp_logo_unreg (struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb)
 
int lpfc_unreg_rpi (struct lpfc_vport *vport, struct lpfc_nodelist *ndlp)
 
void lpfc_unreg_hba_rpis (struct lpfc_hba *phba)
 
void lpfc_unreg_all_rpis (struct lpfc_vport *vport)
 
void lpfc_unreg_default_rpis (struct lpfc_vport *vport)
 
struct lpfc_nodelistlpfc_findnode_did (struct lpfc_vport *vport, uint32_t did)
 
struct lpfc_nodelistlpfc_setup_disc_node (struct lpfc_vport *vport, uint32_t did)
 
void lpfc_disc_list_loopmap (struct lpfc_vport *vport)
 
void lpfc_issue_clear_la (struct lpfc_hba *phba, struct lpfc_vport *vport)
 
void lpfc_issue_reg_vpi (struct lpfc_hba *phba, struct lpfc_vport *vport)
 
void lpfc_disc_start (struct lpfc_vport *vport)
 
void lpfc_cleanup_discovery_resources (struct lpfc_vport *vport)
 
void lpfc_disc_timeout (unsigned long ptr)
 
void lpfc_mbx_cmpl_fdmi_reg_login (struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb)
 
struct lpfc_nodelist__lpfc_findnode_rpi (struct lpfc_vport *vport, uint16_t rpi)
 
struct lpfc_nodelistlpfc_findnode_wwpn (struct lpfc_vport *vport, struct lpfc_name *wwpn)
 
struct lpfc_nodelistlpfc_findnode_rpi (struct lpfc_vport *vport, uint16_t rpi)
 
struct lpfc_vportlpfc_find_vport_by_vpid (struct lpfc_hba *phba, uint16_t vpi)
 
void lpfc_nlp_init (struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, uint32_t did)
 
struct lpfc_nodelistlpfc_nlp_get (struct lpfc_nodelist *ndlp)
 
int lpfc_nlp_put (struct lpfc_nodelist *ndlp)
 
int lpfc_nlp_not_used (struct lpfc_nodelist *ndlp)
 
void lpfc_unregister_vfi_cmpl (struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq)
 
int lpfc_unregister_fcf_prep (struct lpfc_hba *phba)
 
int lpfc_sli4_unregister_fcf (struct lpfc_hba *phba)
 
void lpfc_unregister_fcf_rescan (struct lpfc_hba *phba)
 
void lpfc_unregister_fcf (struct lpfc_hba *phba)
 
void lpfc_unregister_unused_fcf (struct lpfc_hba *phba)
 
void lpfc_parse_fcoe_conf (struct lpfc_hba *phba, uint8_t *buff, uint32_t size)
 

Function Documentation

struct lpfc_nodelist* __lpfc_findnode_rpi ( struct lpfc_vport vport,
uint16_t  rpi 
)
read

Definition at line 5458 of file lpfc_hbadisc.c.

struct lpfc_fast_path_event* lpfc_alloc_fast_evt ( struct lpfc_hba phba)
read

lpfc_alloc_fast_evt - Allocates data structure for posting event : Pointer to hba context object.

This function is called from the functions which need to post events from interrupt context. This function allocates data structure required for posting event. It also keeps track of number of events pending and prevent event storm when there are too many events.

Definition at line 394 of file lpfc_hbadisc.c.

int lpfc_can_disctmo ( struct lpfc_vport vport)

Definition at line 4244 of file lpfc_hbadisc.c.

int lpfc_check_pending_fcoe_event ( struct lpfc_hba phba,
uint8_t  unreg_fcf 
)

lpfc_check_pending_fcoe_event - Check if there is pending fcoe event. : pointer to lpfc hba data structure. : Unregister FCF if FCF table need to be re-scaned.

This function check if there is any fcoe event pending while driver scan FCF entries. If there is any pending event, it will restart the FCF saning and return 1 else return 0.

Definition at line 1673 of file lpfc_hbadisc.c.

int lpfc_check_sli_ndlp ( struct lpfc_hba phba,
struct lpfc_sli_ring pring,
struct lpfc_iocbq iocb,
struct lpfc_nodelist ndlp 
)

Definition at line 4278 of file lpfc_hbadisc.c.

void lpfc_cleanup_discovery_resources ( struct lpfc_vport vport)

Definition at line 5100 of file lpfc_hbadisc.c.

void lpfc_cleanup_rpis ( struct lpfc_vport vport,
int  remove 
)

Definition at line 792 of file lpfc_hbadisc.c.

void lpfc_create_static_vport ( struct lpfc_hba phba)

lpfc_create_static_vport - Read HBA config region to create static vports. : pointer to lpfc hba data structure.

This routine issue a DUMP mailbox command for config region 22 to get the list of static vports to be created. The function create vports based on the information returned from the HBA.

Definition at line 3512 of file lpfc_hbadisc.c.

void lpfc_dequeue_node ( struct lpfc_vport vport,
struct lpfc_nodelist ndlp 
)

Definition at line 4068 of file lpfc_hbadisc.c.

void lpfc_dev_loss_tmo_callbk ( struct fc_rport rport)

Definition at line 104 of file lpfc_hbadisc.c.

void lpfc_disc_list_loopmap ( struct lpfc_vport vport)

Definition at line 4835 of file lpfc_hbadisc.c.

void lpfc_disc_start ( struct lpfc_vport vport)

Definition at line 4931 of file lpfc_hbadisc.c.

void lpfc_disc_timeout ( unsigned long  ptr)

Definition at line 5123 of file lpfc_hbadisc.c.

int lpfc_do_work ( void p)

Definition at line 727 of file lpfc_hbadisc.c.

void lpfc_drop_node ( struct lpfc_vport vport,
struct lpfc_nodelist ndlp 
)

Definition at line 4179 of file lpfc_hbadisc.c.

struct lpfc_nodelist* lpfc_enable_node ( struct lpfc_vport vport,
struct lpfc_nodelist ndlp,
int  state 
)
read

Definition at line 4127 of file lpfc_hbadisc.c.

void lpfc_enqueue_node ( struct lpfc_vport vport,
struct lpfc_nodelist ndlp 
)

Definition at line 4056 of file lpfc_hbadisc.c.

struct lpfc_vport* lpfc_find_vport_by_vpid ( struct lpfc_hba phba,
uint16_t  vpi 
)
read

lpfc_find_vport_by_vpid - Find a vport on a HBA through vport identifier : pointer to lpfc hba data structure. : the physical host virtual N_Port identifier.

This routine finds a vport on a HBA (referred by ) through a . The function walks the HBA's vport list and returns the address of the vport with the matching .

Return code NULL - No vport with the matching found Otherwise - Address to the vport with the matching .

Definition at line 5510 of file lpfc_hbadisc.c.

struct lpfc_nodelist* lpfc_findnode_did ( struct lpfc_vport vport,
uint32_t  did 
)
read

Definition at line 4755 of file lpfc_hbadisc.c.

struct lpfc_nodelist* lpfc_findnode_rpi ( struct lpfc_vport vport,
uint16_t  rpi 
)
read

Definition at line 5485 of file lpfc_hbadisc.c.

struct lpfc_nodelist* lpfc_findnode_wwpn ( struct lpfc_vport vport,
struct lpfc_name wwpn 
)
read

Definition at line 5468 of file lpfc_hbadisc.c.

void lpfc_free_fast_evt ( struct lpfc_hba phba,
struct lpfc_fast_path_event evt 
)

lpfc_free_fast_evt - Frees event data structure : Pointer to hba context object. : Event object which need to be freed.

This function frees the data structure required for posting events.

Definition at line 420 of file lpfc_hbadisc.c.

void lpfc_init_vfi_cmpl ( struct lpfc_hba phba,
LPFC_MBOXQ_t mboxq 
)

lpfc_init_vfi_cmpl - Completion handler for init_vfi mbox command. : pointer to lpfc hba data structure. : pointer to mailbox data structure.

This function handles completion of init vfi mailbox command.

Definition at line 2674 of file lpfc_hbadisc.c.

void lpfc_init_vpi_cmpl ( struct lpfc_hba phba,
LPFC_MBOXQ_t mboxq 
)

lpfc_init_vpi_cmpl - Completion handler for init_vpi mbox command. : pointer to lpfc hba data structure. : pointer to mailbox data structure.

This function handles completion of init vpi mailbox command.

Definition at line 2739 of file lpfc_hbadisc.c.

void lpfc_issue_clear_la ( struct lpfc_hba phba,
struct lpfc_vport vport 
)

Definition at line 4875 of file lpfc_hbadisc.c.

void lpfc_issue_init_vfi ( struct lpfc_vport vport)

lpfc_issue_init_vfi - Issue init_vfi mailbox command. : pointer to lpfc_vport data structure.

This function issue a init_vfi mailbox command to initialize the VFI and VPI for the physical port.

Definition at line 2708 of file lpfc_hbadisc.c.

void lpfc_issue_init_vpi ( struct lpfc_vport vport)

lpfc_issue_init_vpi - Issue init_vpi mailbox command. : pointer to lpfc_vport data structure.

This function issue a init_vpi mailbox command to initialize VPI for the vport.

Definition at line 2791 of file lpfc_hbadisc.c.

void lpfc_issue_reg_vpi ( struct lpfc_hba phba,
struct lpfc_vport vport 
)

Definition at line 4913 of file lpfc_hbadisc.c.

int lpfc_linkdown ( struct lpfc_hba phba)

Definition at line 869 of file lpfc_hbadisc.c.

void lpfc_linkdown_port ( struct lpfc_vport vport)

Definition at line 849 of file lpfc_hbadisc.c.

void lpfc_mbx_cmpl_fabric_reg_login ( struct lpfc_hba phba,
LPFC_MBOXQ_t pmb 
)

Definition at line 3655 of file lpfc_hbadisc.c.

void lpfc_mbx_cmpl_fcf_rr_read_fcf_rec ( struct lpfc_hba phba,
LPFC_MBOXQ_t mboxq 
)

lpfc_mbx_cmpl_fcf_rr_read_fcf_rec - fcf roundrobin read_fcf mbox cmpl hdler : pointer to lpfc hba data structure. : pointer to mailbox object.

This is the callback function for FLOGI failure roundrobin FCF failover read FCF record mailbox command from the eligible FCF record bmask for performing the failover. If the FCF read back is not valid/available, it fails through to retrying FLOGI to the currently registered FCF again. Otherwise, if the FCF read back is valid and available, it will set the newly read FCF record to the failover FCF record, unregister currently registered FCF record, copy the failover FCF record to the current FCF record, and then register the current FCF record before proceeding to trying FLOGI on the new failover FCF.

Definition at line 2517 of file lpfc_hbadisc.c.

void lpfc_mbx_cmpl_fcf_scan_read_fcf_rec ( struct lpfc_hba phba,
LPFC_MBOXQ_t mboxq 
)

lpfc_mbx_cmpl_fcf_scan_read_fcf_rec - fcf scan read_fcf mbox cmpl handler. : pointer to lpfc hba data structure. : pointer to mailbox object.

This function iterates through all the fcf records available in HBA and chooses the optimal FCF record for discovery. After finding the FCF for discovery it registers the FCF record and kicks start discovery. If FCF_IN_USE flag is set in currently used FCF, the routine tries to use an FCF record which matches fabric name and mac address of the currently used FCF record. If the driver supports only one FCF, it will try to use the FCF record used by BOOT_BIOS.

Definition at line 2140 of file lpfc_hbadisc.c.

void lpfc_mbx_cmpl_fdmi_reg_login ( struct lpfc_hba phba,
LPFC_MBOXQ_t pmb 
)

Definition at line 5376 of file lpfc_hbadisc.c.

void lpfc_mbx_cmpl_ns_reg_login ( struct lpfc_hba phba,
LPFC_MBOXQ_t pmb 
)

Definition at line 3734 of file lpfc_hbadisc.c.

void lpfc_mbx_cmpl_read_fcf_rec ( struct lpfc_hba phba,
LPFC_MBOXQ_t mboxq 
)

lpfc_mbx_cmpl_read_fcf_rec - read fcf completion handler. : pointer to lpfc hba data structure. : pointer to mailbox object.

This is the callback function of read FCF record mailbox command for updating the eligible FCF bmask for FLOGI failure roundrobin FCF failover when a new FCF event happened. If the FCF read back is valid/available and it passes the connection list check, it updates the bmask for the eligible FCF record for roundrobin failover.

Definition at line 2620 of file lpfc_hbadisc.c.

void lpfc_mbx_cmpl_read_topology ( struct lpfc_hba phba,
LPFC_MBOXQ_t pmb 
)

Definition at line 3209 of file lpfc_hbadisc.c.

void lpfc_mbx_cmpl_reg_login ( struct lpfc_hba phba,
LPFC_MBOXQ_t pmb 
)

Definition at line 3354 of file lpfc_hbadisc.c.

void lpfc_mbx_cmpl_reg_vfi ( struct lpfc_hba phba,
LPFC_MBOXQ_t mboxq 
)

Definition at line 2863 of file lpfc_hbadisc.c.

int lpfc_mbx_unreg_vpi ( struct lpfc_vport vport)

Definition at line 3435 of file lpfc_hbadisc.c.

struct lpfc_nodelist* lpfc_nlp_get ( struct lpfc_nodelist ndlp)
read

Definition at line 5606 of file lpfc_hbadisc.c.

void lpfc_nlp_init ( struct lpfc_vport vport,
struct lpfc_nodelist ndlp,
uint32_t  did 
)

Definition at line 5547 of file lpfc_hbadisc.c.

void lpfc_nlp_logo_unreg ( struct lpfc_hba phba,
LPFC_MBOXQ_t pmb 
)

lpfc_nlp_logo_unreg - Unreg mailbox completion handler before LOGO : Pointer to HBA context object. : Pointer to mailbox object.

This function will issue an ELS LOGO command after completing the UNREG_RPI.

Definition at line 4380 of file lpfc_hbadisc.c.

int lpfc_nlp_not_used ( struct lpfc_nodelist ndlp)

Definition at line 5712 of file lpfc_hbadisc.c.

int lpfc_nlp_put ( struct lpfc_nodelist ndlp)

Definition at line 5644 of file lpfc_hbadisc.c.

void lpfc_nlp_set_state ( struct lpfc_vport vport,
struct lpfc_nodelist ndlp,
int  state 
)

Definition at line 4018 of file lpfc_hbadisc.c.

void lpfc_parse_fcoe_conf ( struct lpfc_hba phba,
uint8_t buff,
uint32_t  size 
)

lpfc_parse_fcoe_conf - Parse FCoE config data read from config region 23. : Pointer to lpfc_hba data structure. : Buffer containing config region 23 data. : Size of the data buffer.

This function parses the FCoE config parameters in config region 23 and populate driver data structure with the parameters.

Definition at line 6183 of file lpfc_hbadisc.c.

void lpfc_port_link_failure ( struct lpfc_vport vport)

Definition at line 829 of file lpfc_hbadisc.c.

void lpfc_set_disctmo ( struct lpfc_vport vport)

Definition at line 4201 of file lpfc_hbadisc.c.

struct lpfc_nodelist* lpfc_setup_disc_node ( struct lpfc_vport vport,
uint32_t  did 
)
read

Definition at line 4768 of file lpfc_hbadisc.c.

void lpfc_sli4_clear_fcf_rr_bmask ( struct lpfc_hba phba)

lpfc_sli4_clear_fcf_rr_bmask pointer to the struct lpfc_hba for this port. This fucnction resets the round robin bit mask and clears the fcf priority list. The list deletions are done while holding the hbalock. The ON_LIST flag and the FLOGI_FAILED flags are cleared from the lpfc_fcf_pri record.

Definition at line 1145 of file lpfc_hbadisc.c.

int lpfc_sli4_fcf_pri_list_add ( struct lpfc_hba phba,
uint16_t  fcf_index,
struct fcf_record new_fcf_record 
)

lpfc_sli4_fcf_pri_list_add : pointer to lpfc hba data structure. the index of the fcf record to add This routine checks the priority of the fcf_index to be added. If it is a lower priority than the current head of the fcf_pri list then it is added to the list in the right order. If it is the same priority as the current head of the list then it is added to the head of the list and its bit in the rr_bmask is set. If the fcf_index to be added is of a higher priority than the current head of the list then the rr_bmask is cleared, its bit is set in the rr_bmask and it is added to the head of the list. returns: 0=success 1=failure

Definition at line 2043 of file lpfc_hbadisc.c.

int lpfc_sli4_fcf_rr_next_proc ( struct lpfc_vport vport,
uint16_t  fcf_index 
)

lpfc_sli4_fcf_rr_next_proc - processing next roundrobin fcf : Pointer to vport object. : index to next fcf.

This function processing the roundrobin fcf failover to next fcf index. When this function is invoked, there will be a current fcf registered for flogi. Return: 0 for continue retrying flogi on currently registered fcf; 1 for stop flogi on currently registered fcf;

Definition at line 1930 of file lpfc_hbadisc.c.

void lpfc_sli4_set_fcf_flogi_fail ( struct lpfc_hba phba,
uint16_t  fcf_index 
)

lpfc_sli4_set_fcf_flogi_fail : pointer to lpfc hba data structure. the index of the fcf record to update This routine acquires the hbalock and then set the LPFC_FCF_FLOGI_FAILED flag so the the round robin slection for the particular priority level will try a different fcf record that does not have this bit set. If the fcf record is re-read for any reason this flag is cleared brfore adding it to the priority list.

Definition at line 2019 of file lpfc_hbadisc.c.

int lpfc_sli4_unregister_fcf ( struct lpfc_hba phba)

lpfc_sli4_unregister_fcf - Unregister currently registered FCF record : Pointer to hba context object.

This function issues synchronous unregister FCF mailbox command to HBA to unregister the currently registered FCF record. The driver does not reset the driver FCF usage state flags.

Return 0 if successfully issued, none-zero otherwise.

Definition at line 5894 of file lpfc_hbadisc.c.

void lpfc_start_fdiscs ( struct lpfc_hba phba)

lpfc_start_fdiscs - send fdiscs for each vports on this port. : pointer to lpfc hba data structure.

This function loops through the list of vports on the and issues an FDISC if possible.

Definition at line 2822 of file lpfc_hbadisc.c.

void lpfc_terminate_rport_io ( struct fc_rport rport)

Definition at line 70 of file lpfc_hbadisc.c.

void lpfc_unreg_all_rpis ( struct lpfc_vport vport)

Definition at line 4478 of file lpfc_hbadisc.c.

void lpfc_unreg_default_rpis ( struct lpfc_vport vport)

Definition at line 4508 of file lpfc_hbadisc.c.

void lpfc_unreg_hba_rpis ( struct lpfc_hba phba)

lpfc_unreg_hba_rpis - Unregister rpis registered to the hba. : pointer to lpfc hba data structure.

This routine is invoked to unregister all the currently registered RPIs to the HBA.

Definition at line 4448 of file lpfc_hbadisc.c.

int lpfc_unreg_rpi ( struct lpfc_vport vport,
struct lpfc_nodelist ndlp 
)

Definition at line 4401 of file lpfc_hbadisc.c.

void lpfc_unregister_fcf ( struct lpfc_hba phba)

lpfc_unregister_fcf - Unregister the currently registered fcf record : Pointer to hba context object.

This function just unregisters the currently reigstered FCF. It does not try to find another FCF for discovery.

Definition at line 5987 of file lpfc_hbadisc.c.

int lpfc_unregister_fcf_prep ( struct lpfc_hba phba)

lpfc_unregister_fcf_prep - Unregister fcf record preparation : Pointer to hba context object.

This function prepare the HBA for unregistering the currently registered FCF from the HBA. It performs unregistering, in order, RPIs, VPIs, and VFIs.

Definition at line 5841 of file lpfc_hbadisc.c.

void lpfc_unregister_fcf_rescan ( struct lpfc_hba phba)

lpfc_unregister_fcf_rescan - Unregister currently registered fcf and rescan : Pointer to hba context object.

This function unregisters the currently reigstered FCF. This function also tries to find another FCF for discovery by rescan the HBA FCF table.

Definition at line 5929 of file lpfc_hbadisc.c.

void lpfc_unregister_unused_fcf ( struct lpfc_hba phba)

lpfc_unregister_unused_fcf - Unregister FCF if all devices are disconnected. : Pointer to hba context object.

This function check if there are any connected remote port for the FCF and if all the devices are disconnected, this function unregister FCFI. This function also tries to use another FCF for discovery.

Definition at line 6019 of file lpfc_hbadisc.c.

void lpfc_unregister_vfi_cmpl ( struct lpfc_hba phba,
LPFC_MBOXQ_t mboxq 
)

lpfc_unregister_vfi_cmpl - Completion handler for unreg vfi. : Pointer to hba context object. : Pointer to mailbox object.

This function frees memory associated with the mailbox command.

Definition at line 5792 of file lpfc_hbadisc.c.

int lpfc_workq_post_event ( struct lpfc_hba phba,
void arg1,
void arg2,
uint32_t  evt 
)

Definition at line 764 of file lpfc_hbadisc.c.