]> git.proxmox.com Git - mirror_edk2.git/blobdiff - NetworkPkg/IScsiDxe/IScsiDriver.c
NetworkPkg/IScsiDxe: Clear the old IFR TargetIp to avoid sharing it with other attempts.
[mirror_edk2.git] / NetworkPkg / IScsiDxe / IScsiDriver.c
index 269c1aec5c9fcfdb9b6f014633ddbc3340625efd..fbeef970ba6143f910972e53d3599f936a9ac852 100644 (file)
@@ -440,7 +440,7 @@ IScsiStart (
   //\r
   // Record the incoming NIC info.\r
   //\r
-  Status = IScsiAddNic (ControllerHandle);\r
+  Status = IScsiAddNic (ControllerHandle, Image);\r
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
@@ -1813,7 +1813,7 @@ IScsiDriverEntryPoint (
   //\r
   Status = IScsiCreateKeywords (PcdGet8 (PcdMaxIScsiAttemptNumber));\r
   if (EFI_ERROR (Status)) {\r
-    goto Error5;\r
+    goto Error6;\r
   }\r
 \r
   //\r
@@ -1840,13 +1840,16 @@ IScsiDriverEntryPoint (
   return EFI_SUCCESS;\r
 \r
 Error6:\r
-  IScsiConfigFormUnload (gIScsiIp4DriverBinding.DriverBindingHandle);\r
+  IScsiCleanAttemptVariable ();\r
 \r
 Error5:\r
-  IScsiCleanAttemptVariable ();\r
+  IScsiConfigFormUnload (gIScsiIp4DriverBinding.DriverBindingHandle);\r
 \r
 Error4:\r
-  FreePool (mPrivate);\r
+  if (mPrivate != NULL) {\r
+    FreePool (mPrivate);\r
+    mPrivate = NULL;\r
+  }\r
 \r
 Error3:\r
   gBS->UninstallMultipleProtocolInterfaces (\r