lpfc: Modularize and cleanup FDMI code in driver
Modularize, cleanup, add comments - for FDMI code in driver Note: I don't like the comments with leading # - but as we have a lot if present, I'm deferring to handle it in one big fix later. Signed-off-by: Dick Kennedy <dick.kennedy@avagotech.com> Signed-off-by: James Smart <james.smart@avagotech.com> Reviewed-by: Hannes Reinicke <hare@suse.de> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:

committed by
Martin K. Petersen

parent
c90261dcd8
commit
4258e98ee3
@@ -4572,19 +4572,27 @@ LPFC_ATTR_R(multi_ring_type, FC_TYPE_IP, 1,
|
||||
255, "Identifies TYPE for additional ring configuration");
|
||||
|
||||
/*
|
||||
# lpfc_fdmi_on: controls FDMI support.
|
||||
# Set NOT Set
|
||||
# bit 0 = FDMI support no FDMI support
|
||||
# LPFC_FDMI_SUPPORT just turns basic support on/off
|
||||
# bit 1 = Register delay no register delay (60 seconds)
|
||||
# LPFC_FDMI_REG_DELAY 60 sec registration delay after FDMI login
|
||||
# bit 2 = All attributes Use a attribute subset
|
||||
# LPFC_FDMI_ALL_ATTRIB applies to both port and HBA attributes
|
||||
# Port attrutes subset: 1 thru 6 OR all: 1 thru 0xd 0x101 0x102 0x103
|
||||
# HBA attributes subset: 1 thru 0xb OR all: 1 thru 0xc
|
||||
# Value range [0,7]. Default value is 0.
|
||||
# lpfc_enable_SmartSAN: Sets up FDMI support for SmartSAN
|
||||
# 0 = SmartSAN functionality disabled (default)
|
||||
# 1 = SmartSAN functionality enabled
|
||||
# This parameter will override the value of lpfc_fdmi_on module parameter.
|
||||
# Value range is [0,1]. Default value is 0.
|
||||
*/
|
||||
LPFC_VPORT_ATTR_RW(fdmi_on, 0, 0, 7, "Enable FDMI support");
|
||||
LPFC_ATTR_R(enable_SmartSAN, 0, 0, 1, "Enable SmartSAN functionality");
|
||||
|
||||
/*
|
||||
# lpfc_fdmi_on: Controls FDMI support.
|
||||
# 0 No FDMI support (default)
|
||||
# 1 Traditional FDMI support
|
||||
# 2 Smart SAN support
|
||||
# If lpfc_enable_SmartSAN is set 1, the driver sets lpfc_fdmi_on to value 2
|
||||
# overwriting the current value. If lpfc_enable_SmartSAN is set 0, the
|
||||
# driver uses the current value of lpfc_fdmi_on provided it has value 0 or 1.
|
||||
# A value of 2 with lpfc_enable_SmartSAN set to 0 causes the driver to
|
||||
# set lpfc_fdmi_on back to 1.
|
||||
# Value range [0,2]. Default value is 0.
|
||||
*/
|
||||
LPFC_ATTR_R(fdmi_on, 0, 0, 2, "Enable FDMI support");
|
||||
|
||||
/*
|
||||
# Specifies the maximum number of ELS cmds we can have outstanding (for
|
||||
@@ -4815,6 +4823,7 @@ struct device_attribute *lpfc_hba_attrs[] = {
|
||||
&dev_attr_lpfc_multi_ring_rctl,
|
||||
&dev_attr_lpfc_multi_ring_type,
|
||||
&dev_attr_lpfc_fdmi_on,
|
||||
&dev_attr_lpfc_enable_SmartSAN,
|
||||
&dev_attr_lpfc_max_luns,
|
||||
&dev_attr_lpfc_enable_npiv,
|
||||
&dev_attr_lpfc_fcf_failover_policy,
|
||||
@@ -4887,7 +4896,6 @@ struct device_attribute *lpfc_vport_attrs[] = {
|
||||
&dev_attr_lpfc_fcp_class,
|
||||
&dev_attr_lpfc_use_adisc,
|
||||
&dev_attr_lpfc_first_burst_size,
|
||||
&dev_attr_lpfc_fdmi_on,
|
||||
&dev_attr_lpfc_max_luns,
|
||||
&dev_attr_nport_evt_cnt,
|
||||
&dev_attr_npiv_info,
|
||||
@@ -5826,6 +5834,8 @@ lpfc_get_cfgparam(struct lpfc_hba *phba)
|
||||
lpfc_enable_npiv_init(phba, lpfc_enable_npiv);
|
||||
lpfc_fcf_failover_policy_init(phba, lpfc_fcf_failover_policy);
|
||||
lpfc_enable_rrq_init(phba, lpfc_enable_rrq);
|
||||
lpfc_fdmi_on_init(phba, lpfc_fdmi_on);
|
||||
lpfc_enable_SmartSAN_init(phba, lpfc_enable_SmartSAN);
|
||||
lpfc_use_msi_init(phba, lpfc_use_msi);
|
||||
lpfc_fcp_imax_init(phba, lpfc_fcp_imax);
|
||||
lpfc_fcp_cpu_map_init(phba, lpfc_fcp_cpu_map);
|
||||
@@ -5846,6 +5856,15 @@ lpfc_get_cfgparam(struct lpfc_hba *phba)
|
||||
phba->cfg_poll = 0;
|
||||
else
|
||||
phba->cfg_poll = lpfc_poll;
|
||||
|
||||
/* Ensure fdmi_on and enable_SmartSAN don't conflict */
|
||||
if (phba->cfg_enable_SmartSAN) {
|
||||
phba->cfg_fdmi_on = LPFC_FDMI_SMART_SAN;
|
||||
} else {
|
||||
if (phba->cfg_fdmi_on == LPFC_FDMI_SMART_SAN)
|
||||
phba->cfg_fdmi_on = LPFC_FDMI_SUPPORT;
|
||||
}
|
||||
|
||||
phba->cfg_soft_wwnn = 0L;
|
||||
phba->cfg_soft_wwpn = 0L;
|
||||
lpfc_sg_seg_cnt_init(phba, lpfc_sg_seg_cnt);
|
||||
@@ -5879,7 +5898,6 @@ lpfc_get_vport_cfgparam(struct lpfc_vport *vport)
|
||||
lpfc_use_adisc_init(vport, lpfc_use_adisc);
|
||||
lpfc_first_burst_size_init(vport, lpfc_first_burst_size);
|
||||
lpfc_max_scsicmpl_time_init(vport, lpfc_max_scsicmpl_time);
|
||||
lpfc_fdmi_on_init(vport, lpfc_fdmi_on);
|
||||
lpfc_discovery_threads_init(vport, lpfc_discovery_threads);
|
||||
lpfc_max_luns_init(vport, lpfc_max_luns);
|
||||
lpfc_scan_down_init(vport, lpfc_scan_down);
|
||||
|
Reference in New Issue
Block a user