Create a Node WWN from the *Port* WWN, not vice versa, for 2400s.

If the NAA is type 2, the Node WWN is the Port WWN with the 12 bits
of port (48..60) cleared. This iff a wwn fetched from NVRAM is zero.

MFC after:	1 week
This commit is contained in:
Matt Jacob 2009-12-31 04:16:18 +00:00
parent 15768c780a
commit 1d52a1ad42

View File

@ -8350,11 +8350,6 @@ isp_parse_nvram_2400(ispsoftc_t *isp, uint8_t *nvram_data)
ISP2400_NVRAM_FIRMWARE_OPTIONS3(nvram_data));
wwn = ISP2400_NVRAM_PORT_NAME(nvram_data);
if (wwn) {
if ((wwn >> 60) != 2 && (wwn >> 60) != 5) {
wwn = 0;
}
}
fcp->isp_wwpn_nvram = wwn;
wwn = ISP2400_NVRAM_NODE_NAME(nvram_data);
@ -8363,6 +8358,10 @@ isp_parse_nvram_2400(ispsoftc_t *isp, uint8_t *nvram_data)
wwn = 0;
}
}
if (wwn == 0 && (fcp->isp_wwpn_nvram >> 60) == 2) {
wwn = fcp->isp_wwpn_nvram;
wwn &= ~((uint64_t) 0xfff << 48);
}
fcp->isp_wwnn_nvram = wwn;
if (ISP2400_NVRAM_EXCHANGE_COUNT(nvram_data)) {