aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/lpfc
diff options
context:
space:
mode:
authorJames Smart <james.smart@emulex.com>2010-04-06 14:49:03 -0400
committerJames Bottomley <James.Bottomley@suse.de>2010-04-11 14:44:55 -0400
commit15672319e3da68bb3f710e724185f4524722a6fa (patch)
tree456c11ff9a9bb435bfbc57460ecdc18d2ebd6f5c /drivers/scsi/lpfc
parentb19a061a785db22401b62cc4ee2baf95d5c7e2e7 (diff)
[SCSI] lpfc 8.3.12: Miscellaneous Changes
- Prevent log message 1801 during vport delete. - Enable NPIV by default. - Display correct value for max Vports on SLI4 HBAs. Signed-off-by: Alex Iannicelli <alex.iannicelli@emulex.com> Signed-off-by: James Smart <james.smart@emulex.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/lpfc')
-rw-r--r--drivers/scsi/lpfc/lpfc_attr.c18
-rw-r--r--drivers/scsi/lpfc/lpfc_vport.c4
2 files changed, 15 insertions, 7 deletions
diff --git a/drivers/scsi/lpfc/lpfc_attr.c b/drivers/scsi/lpfc/lpfc_attr.c
index 5df15c65b35b..2e5f376d9ccc 100644
--- a/drivers/scsi/lpfc/lpfc_attr.c
+++ b/drivers/scsi/lpfc/lpfc_attr.c
@@ -869,6 +869,7 @@ lpfc_get_hba_info(struct lpfc_hba *phba,
869 LPFC_MBOXQ_t *pmboxq; 869 LPFC_MBOXQ_t *pmboxq;
870 MAILBOX_t *pmb; 870 MAILBOX_t *pmb;
871 int rc = 0; 871 int rc = 0;
872 uint32_t max_vpi;
872 873
873 /* 874 /*
874 * prevent udev from issuing mailbox commands until the port is 875 * prevent udev from issuing mailbox commands until the port is
@@ -916,11 +917,17 @@ lpfc_get_hba_info(struct lpfc_hba *phba,
916 if (axri) 917 if (axri)
917 *axri = bf_get(lpfc_mbx_rd_conf_xri_count, rd_config) - 918 *axri = bf_get(lpfc_mbx_rd_conf_xri_count, rd_config) -
918 phba->sli4_hba.max_cfg_param.xri_used; 919 phba->sli4_hba.max_cfg_param.xri_used;
920
921 /* Account for differences with SLI-3. Get vpi count from
922 * mailbox data and subtract one for max vpi value.
923 */
924 max_vpi = (bf_get(lpfc_mbx_rd_conf_vpi_count, rd_config) > 0) ?
925 (bf_get(lpfc_mbx_rd_conf_vpi_count, rd_config) - 1) : 0;
926
919 if (mvpi) 927 if (mvpi)
920 *mvpi = bf_get(lpfc_mbx_rd_conf_vpi_count, rd_config); 928 *mvpi = max_vpi;
921 if (avpi) 929 if (avpi)
922 *avpi = bf_get(lpfc_mbx_rd_conf_vpi_count, rd_config) - 930 *avpi = max_vpi - phba->sli4_hba.max_cfg_param.vpi_used;
923 phba->sli4_hba.max_cfg_param.vpi_used;
924 } else { 931 } else {
925 if (mrpi) 932 if (mrpi)
926 *mrpi = pmb->un.varRdConfig.max_rpi; 933 *mrpi = pmb->un.varRdConfig.max_rpi;
@@ -1925,13 +1932,12 @@ MODULE_PARM_DESC(lpfc_sli_mode, "SLI mode selector:"
1925 " 2 - select SLI-2 even on SLI-3 capable HBAs," 1932 " 2 - select SLI-2 even on SLI-3 capable HBAs,"
1926 " 3 - select SLI-3"); 1933 " 3 - select SLI-3");
1927 1934
1928int lpfc_enable_npiv = 0; 1935int lpfc_enable_npiv = 1;
1929module_param(lpfc_enable_npiv, int, 0); 1936module_param(lpfc_enable_npiv, int, 0);
1930MODULE_PARM_DESC(lpfc_enable_npiv, "Enable NPIV functionality"); 1937MODULE_PARM_DESC(lpfc_enable_npiv, "Enable NPIV functionality");
1931lpfc_param_show(enable_npiv); 1938lpfc_param_show(enable_npiv);
1932lpfc_param_init(enable_npiv, 1, 0, 1); 1939lpfc_param_init(enable_npiv, 1, 0, 1);
1933static DEVICE_ATTR(lpfc_enable_npiv, S_IRUGO, 1940static DEVICE_ATTR(lpfc_enable_npiv, S_IRUGO, lpfc_enable_npiv_show, NULL);
1934 lpfc_enable_npiv_show, NULL);
1935 1941
1936/* 1942/*
1937# lpfc_suppress_link_up: Bring link up at initialization 1943# lpfc_suppress_link_up: Bring link up at initialization
diff --git a/drivers/scsi/lpfc/lpfc_vport.c b/drivers/scsi/lpfc/lpfc_vport.c
index ffd575c379f3..ab91359bde20 100644
--- a/drivers/scsi/lpfc/lpfc_vport.c
+++ b/drivers/scsi/lpfc/lpfc_vport.c
@@ -763,7 +763,9 @@ lpfc_create_vport_work_array(struct lpfc_hba *phba)
763 spin_lock_irq(&phba->hbalock); 763 spin_lock_irq(&phba->hbalock);
764 list_for_each_entry(port_iterator, &phba->port_list, listentry) { 764 list_for_each_entry(port_iterator, &phba->port_list, listentry) {
765 if (!scsi_host_get(lpfc_shost_from_vport(port_iterator))) { 765 if (!scsi_host_get(lpfc_shost_from_vport(port_iterator))) {
766 lpfc_printf_vlog(port_iterator, KERN_WARNING, LOG_VPORT, 766 if (!(port_iterator->load_flag & FC_UNLOADING))
767 lpfc_printf_vlog(port_iterator, KERN_ERR,
768 LOG_VPORT,
767 "1801 Create vport work array FAILED: " 769 "1801 Create vport work array FAILED: "
768 "cannot do scsi_host_get\n"); 770 "cannot do scsi_host_get\n");
769 continue; 771 continue;