**/\r
EFI_STATUS\r
IScsiCheckAip (\r
+ VOID\r
)\r
{\r
UINTN AipHandleCount;\r
//\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
//\r
Status = IScsiCreateKeywords (PcdGet8 (PcdMaxIScsiAttemptNumber));\r
if (EFI_ERROR (Status)) {\r
- goto Error5;\r
+ goto Error6;\r
}\r
\r
//\r
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