aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/scsi/lpfc/lpfc.h1
-rw-r--r--drivers/scsi/lpfc/lpfc_attr.c8
-rw-r--r--drivers/scsi/lpfc/lpfc_crtn.h1
-rw-r--r--drivers/scsi/lpfc/lpfc_els.c3
4 files changed, 6 insertions, 7 deletions
diff --git a/drivers/scsi/lpfc/lpfc.h b/drivers/scsi/lpfc/lpfc.h
index 40e069c76091..82d7b115b650 100644
--- a/drivers/scsi/lpfc/lpfc.h
+++ b/drivers/scsi/lpfc/lpfc.h
@@ -754,6 +754,7 @@ struct lpfc_hba {
754 uint32_t cfg_iocb_cnt; 754 uint32_t cfg_iocb_cnt;
755 uint32_t cfg_suppress_link_up; 755 uint32_t cfg_suppress_link_up;
756 uint32_t cfg_rrq_xri_bitmap_sz; 756 uint32_t cfg_rrq_xri_bitmap_sz;
757 uint32_t cfg_delay_discovery;
757#define LPFC_INITIALIZE_LINK 0 /* do normal init_link mbox */ 758#define LPFC_INITIALIZE_LINK 0 /* do normal init_link mbox */
758#define LPFC_DELAY_INIT_LINK 1 /* layered driver hold off */ 759#define LPFC_DELAY_INIT_LINK 1 /* layered driver hold off */
759#define LPFC_DELAY_INIT_LINK_INDEFINITELY 2 /* wait, manual intervention */ 760#define LPFC_DELAY_INIT_LINK_INDEFINITELY 2 /* wait, manual intervention */
diff --git a/drivers/scsi/lpfc/lpfc_attr.c b/drivers/scsi/lpfc/lpfc_attr.c
index 25d91a86e4a6..f5abcea49730 100644
--- a/drivers/scsi/lpfc/lpfc_attr.c
+++ b/drivers/scsi/lpfc/lpfc_attr.c
@@ -4815,11 +4815,8 @@ MODULE_PARM_DESC(lpfc_prot_guard, "host protection guard type");
4815 * accept and FCID/Fabric name/Fabric portname is changed. 4815 * accept and FCID/Fabric name/Fabric portname is changed.
4816 * Default value is 0. 4816 * Default value is 0.
4817 */ 4817 */
4818int lpfc_delay_discovery; 4818LPFC_ATTR(delay_discovery, 0, 0, 1,
4819module_param(lpfc_delay_discovery, int, S_IRUGO); 4819 "Delay NPort discovery when Clean Address bit is cleared.");
4820MODULE_PARM_DESC(lpfc_delay_discovery,
4821 "Delay NPort discovery when Clean Address bit is cleared. "
4822 "Allowed values: 0,1.");
4823 4820
4824/* 4821/*
4825 * lpfc_sg_seg_cnt - Initial Maximum DMA Segment Count 4822 * lpfc_sg_seg_cnt - Initial Maximum DMA Segment Count
@@ -5938,6 +5935,7 @@ lpfc_get_cfgparam(struct lpfc_hba *phba)
5938 lpfc_request_firmware_upgrade_init(phba, lpfc_req_fw_upgrade); 5935 lpfc_request_firmware_upgrade_init(phba, lpfc_req_fw_upgrade);
5939 lpfc_suppress_link_up_init(phba, lpfc_suppress_link_up); 5936 lpfc_suppress_link_up_init(phba, lpfc_suppress_link_up);
5940 lpfc_iocb_cnt_init(phba, lpfc_iocb_cnt); 5937 lpfc_iocb_cnt_init(phba, lpfc_iocb_cnt);
5938 lpfc_delay_discovery_init(phba, lpfc_delay_discovery);
5941 phba->cfg_enable_dss = 1; 5939 phba->cfg_enable_dss = 1;
5942 lpfc_enable_mds_diags_init(phba, lpfc_enable_mds_diags); 5940 lpfc_enable_mds_diags_init(phba, lpfc_enable_mds_diags);
5943 return; 5941 return;
diff --git a/drivers/scsi/lpfc/lpfc_crtn.h b/drivers/scsi/lpfc/lpfc_crtn.h
index b8a2ddc49e50..9f075db51099 100644
--- a/drivers/scsi/lpfc/lpfc_crtn.h
+++ b/drivers/scsi/lpfc/lpfc_crtn.h
@@ -360,7 +360,6 @@ extern struct scsi_host_template lpfc_vport_template;
360extern struct fc_function_template lpfc_transport_functions; 360extern struct fc_function_template lpfc_transport_functions;
361extern struct fc_function_template lpfc_vport_transport_functions; 361extern struct fc_function_template lpfc_vport_transport_functions;
362extern int lpfc_sli_mode; 362extern int lpfc_sli_mode;
363extern int lpfc_delay_discovery;
364 363
365int lpfc_vport_symbolic_node_name(struct lpfc_vport *, char *, size_t); 364int lpfc_vport_symbolic_node_name(struct lpfc_vport *, char *, size_t);
366int lpfc_vport_symbolic_port_name(struct lpfc_vport *, char *, size_t); 365int lpfc_vport_symbolic_port_name(struct lpfc_vport *, char *, size_t);
diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c
index 5afbf4d06d53..c0af32f24954 100644
--- a/drivers/scsi/lpfc/lpfc_els.c
+++ b/drivers/scsi/lpfc/lpfc_els.c
@@ -594,6 +594,7 @@ static uint8_t
594lpfc_check_clean_addr_bit(struct lpfc_vport *vport, 594lpfc_check_clean_addr_bit(struct lpfc_vport *vport,
595 struct serv_parm *sp) 595 struct serv_parm *sp)
596{ 596{
597 struct lpfc_hba *phba = vport->phba;
597 uint8_t fabric_param_changed = 0; 598 uint8_t fabric_param_changed = 0;
598 struct Scsi_Host *shost = lpfc_shost_from_vport(vport); 599 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
599 600
@@ -615,7 +616,7 @@ lpfc_check_clean_addr_bit(struct lpfc_vport *vport,
615 * - lpfc_delay_discovery module parameter is set. 616 * - lpfc_delay_discovery module parameter is set.
616 */ 617 */
617 if (fabric_param_changed && !sp->cmn.clean_address_bit && 618 if (fabric_param_changed && !sp->cmn.clean_address_bit &&
618 (vport->fc_prevDID || lpfc_delay_discovery)) { 619 (vport->fc_prevDID || phba->cfg_delay_discovery)) {
619 spin_lock_irq(shost->host_lock); 620 spin_lock_irq(shost->host_lock);
620 vport->fc_flag |= FC_DISC_DELAYED; 621 vport->fc_flag |= FC_DISC_DELAYED;
621 spin_unlock_irq(shost->host_lock); 622 spin_unlock_irq(shost->host_lock);