VOID *Interface;\r
EFI_GUID *ProtocolGuid;\r
UINT8 NetworkBootPolicy;\r
+ ISCSI_SESSION_CONFIG_NVDATA *NvData;\r
\r
//\r
// Test to see if iSCSI driver supports the given controller.\r
Session->ConfigData = AttemptConfigData;\r
Session->AuthType = AttemptConfigData->AuthenticationType;\r
\r
- AsciiStrToUnicodeStrS (AttemptConfigData->MacString, MacString, sizeof (MacString) / sizeof (MacString[0]));\r
+ AsciiStrToUnicodeStrS (AttemptConfigData->MacString, MacString, ARRAY_SIZE (MacString));\r
UnicodeSPrint (\r
mPrivate->PortString,\r
(UINTN) ISCSI_NAME_IFR_MAX_SIZE,\r
Status = IScsiSessionReLogin (Session);\r
}\r
\r
+ //\r
+ // Restore the origial user setting which specifies the proxy/virtual iSCSI target to NV region.\r
+ //\r
+ NvData = &AttemptConfigData->SessionConfigData;\r
+ if (NvData->RedirectFlag) {\r
+ NvData->TargetPort = NvData->OriginalTargetPort;\r
+ CopyMem (&NvData->TargetIp, &NvData->OriginalTargetIp, sizeof (EFI_IP_ADDRESS));\r
+ NvData->RedirectFlag = FALSE;\r
+\r
+ gRT->SetVariable (\r
+ mPrivate->PortString,\r
+ &gEfiIScsiInitiatorNameProtocolGuid,\r
+ ISCSI_CONFIG_VAR_ATTR,\r
+ sizeof (ISCSI_ATTEMPT_CONFIG_NVDATA),\r
+ AttemptConfigData\r
+ );\r
+ }\r
+\r
if (EFI_ERROR (Status)) {\r
//\r
// In Single path mode, only the successful attempt will be recorded in iBFT;\r