]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/scsi/lpfc/lpfc_ct.c
scsi: lpfc: Correct boot bios information to FDMI registration
[linux.git] / drivers / scsi / lpfc / lpfc_ct.c
index 0f09e9b4143590c2e3a397b03172720b677f405b..713f1f070c1501a8801f16afecf79e315a16bd7c 100644 (file)
@@ -1463,7 +1463,7 @@ lpfc_vport_symbolic_node_name(struct lpfc_vport *vport, char *symbol,
                return n;
 
        /* Note :- OS name is "Linux" */
-       n += snprintf(symbol + n, size - n, " OS:%s\n",
+       n += snprintf(symbol + n, size - n, " OS:%s",
                      init_utsname()->sysname);
        return n;
 }
@@ -2304,7 +2304,8 @@ lpfc_fdmi_hba_attr_bios_ver(struct lpfc_vport *vport,
        ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
        memset(ae, 0, 256);
 
-       lpfc_decode_firmware_rev(phba, ae->un.AttrString, 1);
+       strlcat(ae->un.AttrString, phba->BIOSVersion,
+               sizeof(ae->un.AttrString));
        len = strnlen(ae->un.AttrString,
                          sizeof(ae->un.AttrString));
        len += (len & 3) ? (4 - (len & 3)) : 4;
@@ -2363,10 +2364,11 @@ lpfc_fdmi_port_attr_fc4type(struct lpfc_vport *vport,
        ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
        memset(ae, 0, 32);
 
-       ae->un.AttrTypes[3] = 0x02; /* Type 1 - ELS */
-       ae->un.AttrTypes[2] = 0x01; /* Type 8 - FCP */
-       ae->un.AttrTypes[6] = 0x01; /* Type 40 - NVME */
-       ae->un.AttrTypes[7] = 0x01; /* Type 32 - CT */
+       ae->un.AttrTypes[3] = 0x02; /* Type 0x1 - ELS */
+       ae->un.AttrTypes[2] = 0x01; /* Type 0x8 - FCP */
+       if (vport->nvmei_support || vport->phba->nvmet_support)
+               ae->un.AttrTypes[6] = 0x01; /* Type 0x28 - NVME */
+       ae->un.AttrTypes[7] = 0x01; /* Type 0x20 - CT */
        size = FOURBYTES + 32;
        ad->AttrLen = cpu_to_be16(size);
        ad->AttrType = cpu_to_be16(RPRT_SUPPORTED_FC4_TYPES);
@@ -2676,9 +2678,11 @@ lpfc_fdmi_port_attr_active_fc4type(struct lpfc_vport *vport,
        ae = (struct lpfc_fdmi_attr_entry *)&ad->AttrValue;
        memset(ae, 0, 32);
 
-       ae->un.AttrTypes[3] = 0x02; /* Type 1 - ELS */
-       ae->un.AttrTypes[2] = 0x01; /* Type 8 - FCP */
-       ae->un.AttrTypes[7] = 0x01; /* Type 32 - CT */
+       ae->un.AttrTypes[3] = 0x02; /* Type 0x1 - ELS */
+       ae->un.AttrTypes[2] = 0x01; /* Type 0x8 - FCP */
+       if (vport->phba->cfg_enable_fc4_type & LPFC_ENABLE_NVME)
+               ae->un.AttrTypes[6] = 0x1; /* Type 0x28 - NVME */
+       ae->un.AttrTypes[7] = 0x01; /* Type 0x20 - CT */
        size = FOURBYTES + 32;
        ad->AttrLen = cpu_to_be16(size);
        ad->AttrType = cpu_to_be16(RPRT_ACTIVE_FC4_TYPES);