NetworkPkg/IScsiDxe: Use UEFILib APIs to uninstall protocols.

During cleanup in case of initialization failure, some driver
bindings are not installed. Using abstractions in UEFILib takes
care of it.

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1428

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ashish Singhal <ashishsingha@nvidia.com>
Reviewed-by: Fu Siyuan <siyuan.fu@intel.com>
This commit is contained in:
Ashish Singhal 2019-01-10 04:58:35 +08:00 committed by Liming Gao
parent 0290fca20f
commit 15666b8cd0
1 changed files with 11 additions and 20 deletions

View File

@ -1,6 +1,7 @@
/** @file
The entry point of IScsi driver.
Copyright (c) 2019, NVIDIA Corporation. All rights reserved.
Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
(C) Copyright 2017 Hewlett Packard Enterprise Development LP<BR>
@ -1861,28 +1862,18 @@ Error3:
);
Error2:
gBS->UninstallMultipleProtocolInterfaces (
gIScsiIp6DriverBinding.DriverBindingHandle,
&gEfiDriverBindingProtocolGuid,
&gIScsiIp6DriverBinding,
&gEfiComponentName2ProtocolGuid,
&gIScsiComponentName2,
&gEfiComponentNameProtocolGuid,
&gIScsiComponentName,
NULL
);
EfiLibUninstallDriverBindingComponentName2 (
&gIScsiIp6DriverBinding,
&gIScsiComponentName,
&gIScsiComponentName2
);
Error1:
gBS->UninstallMultipleProtocolInterfaces (
ImageHandle,
&gEfiDriverBindingProtocolGuid,
&gIScsiIp4DriverBinding,
&gEfiComponentName2ProtocolGuid,
&gIScsiComponentName2,
&gEfiComponentNameProtocolGuid,
&gIScsiComponentName,
NULL
);
EfiLibUninstallDriverBindingComponentName2 (
&gIScsiIp4DriverBinding,
&gIScsiComponentName,
&gIScsiComponentName2
);
return Status;
}