Re: [edk2] [PATCH] NetworkPkg: Protocol Uninstallation Cleanup

2019-01-13 Thread Wu, Jiaxin
Already pushed.  SHA-1: 22b35e8bd1f9aea7bbab3a26e8ab4df339454463


Thanks,
Jiaxin


> -Original Message-
> From: Ashish Singhal [mailto:ashishsin...@nvidia.com]
> Sent: Monday, January 14, 2019 12:58 PM
> To: Wu, Jiaxin ; edk2-devel@lists.01.org
> Cc: Fu, Siyuan 
> Subject: RE: [PATCH] NetworkPkg: Protocol Uninstallation Cleanup
> 
> Thanks Jiaxin. Please let me know if anything else is needed to mainline it.
> 
> -Original Message-
> From: Wu, Jiaxin 
> Sent: Thursday, January 10, 2019 6:01 PM
> To: Ashish Singhal ; edk2-devel@lists.01.org
> Cc: Fu, Siyuan 
> Subject: RE: [PATCH] NetworkPkg: Protocol Uninstallation Cleanup
> 
> Looks good to me.
> 
> Reviewed-by: Wu Jiaxin 
> 
> Thanks,
> Jiaxin
> 
> > -Original Message-
> > From: Ashish Singhal [mailto:ashishsin...@nvidia.com]
> > Sent: Friday, January 11, 2019 3:27 AM
> > To: edk2-devel@lists.01.org
> > Cc: Fu, Siyuan ; Wu, Jiaxin
> > ; Ashish Singhal 
> > Subject: [PATCH] NetworkPkg: Protocol Uninstallation Cleanup
> >
> > Use UEFILib provided protocol uninstallation abstraction instead of
> > direct API for a proper cleanup.
> >
> > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1444
> >
> > Contributed-under: TianoCore Contribution Agreement 1.1
> > Signed-off-by: Ashish Singhal 
> > ---
> >  NetworkPkg/DnsDxe/DnsDriver.c | 30 ++
> >  NetworkPkg/HttpBootDxe/HttpBootDxe.c  | 15 +--
> >  NetworkPkg/HttpDxe/HttpDriver.c   | 15 +--
> >  NetworkPkg/IpSecDxe/IpSecDriver.c | 15 +--
> >  NetworkPkg/TcpDxe/TcpDriver.c | 15 +--
> >  NetworkPkg/UefiPxeBcDxe/PxeBcDriver.c | 15 +--
> >  6 files changed, 35 insertions(+), 70 deletions(-)
> >
> > diff --git a/NetworkPkg/DnsDxe/DnsDriver.c
> > b/NetworkPkg/DnsDxe/DnsDriver.c index 1f9b924..b74f5ba 100644
> > --- a/NetworkPkg/DnsDxe/DnsDriver.c
> > +++ b/NetworkPkg/DnsDxe/DnsDriver.c
> > @@ -510,28 +510,18 @@ DnsDriverEntryPoint (
> >  FreePool (mDriverData);
> >
> >Error2:
> > - gBS->UninstallMultipleProtocolInterfaces (
> > -   gDns6DriverBinding.DriverBindingHandle,
> > -   &gEfiDriverBindingProtocolGuid,
> > -   &gDns6DriverBinding,
> > -   &gEfiComponentName2ProtocolGuid,
> > -   &gDnsComponentName2,
> > -   &gEfiComponentNameProtocolGuid,
> > -   &gDnsComponentName,
> > -   NULL
> > -   );
> > + EfiLibUninstallDriverBindingComponentName2 (
> > +   &gDns6DriverBinding,
> > +   &gDnsComponentName,
> > +   &gDnsComponentName2
> > +   );
> >
> >Error1:
> > -gBS->UninstallMultipleProtocolInterfaces (
> > -   ImageHandle,
> > -   &gEfiDriverBindingProtocolGuid,
> > -   &gDns4DriverBinding,
> > -   &gEfiComponentName2ProtocolGuid,
> > -   &gDnsComponentName2,
> > -   &gEfiComponentNameProtocolGuid,
> > -   &gDnsComponentName,
> > -   NULL
> > -   );
> > +EfiLibUninstallDriverBindingComponentName2 (
> > +  &gDns4DriverBinding,
> > +  &gDnsComponentName,
> > +  &gDnsComponentName2
> > +  );
> >
> >return Status;
> >  }
> > diff --git a/NetworkPkg/HttpBootDxe/HttpBootDxe.c
> > b/NetworkPkg/HttpBootDxe/HttpBootDxe.c
> > index 7ec06f960..0b16f95 100644
> > --- a/NetworkPkg/HttpBootDxe/HttpBootDxe.c
> > +++ b/NetworkPkg/HttpBootDxe/HttpBootDxe.c
> > @@ -1327,16 +1327,11 @@ HttpBootDxeDriverEntryPoint (
> >   &gHttpBootDxeComponentName2
> >   );
> >if (EFI_ERROR (Status)) {
> > -gBS->UninstallMultipleProtocolInterfaces(
> > -   ImageHandle,
> > -   &gEfiDriverBindingProtocolGuid,
> > -   &gHttpBootIp4DxeDriverBinding,
> > -   &gEfiComponentName2ProtocolGuid,
> > -   &gHttpBootDxeComponentName2,
> > -   &gEfiComponentNameProtocolGuid,
> > -   &gHttpBootDxeComponentName,
> > -   NULL
> > -   );
> > +EfiLibUninstallDriverBindingComponentName2(
> > +  &gHttpBootIp4DxeDriverBinding,
> > +  &gHttpBootDxeComponentName,
> > +  &gHttpBootDxeComponentName2
> > +  );
> >}
> >return Status;
> >  }
> > diff --git a/NetworkPkg/HttpDxe/HttpDriver.c
> > b/NetworkPkg/HttpDxe/HttpDriver.c index 8df984d..979d76d 100644
> > --- a/NetworkPkg/HttpDxe/HttpDriver.c
> > +++ b/NetworkPkg/HttpDxe/HttpDriver.c
> > @@ -230,16 +230,11 @@ HttpDxeDriverEntryPoint (
> >   &gHttpDxeComponentName2
> >   );
> >if (EFI_ERROR (Status)) {
> > -gBS->UninstallMultipleProtocolInterfaces (
> > -   ImageHandle,
> > -   &gEfiDriverBindingProtocolGuid,
> > -   &gHttpDxeIp4DriverBinding,
> > -   &gEfiComponentName2ProtocolGuid,
> > -   &gHttpDxeComponentName2,
> > -   &gEfiComponentNameProtocolGuid,
> > -   &gHttpDxeComponentName,
> > -   NULL
> > -   );
> > +EfiLibUninstallDriverBindingCompon

Re: [edk2] [PATCH] NetworkPkg: Protocol Uninstallation Cleanup

2019-01-13 Thread Ashish Singhal
Thanks Jiaxin. Please let me know if anything else is needed to mainline it.

-Original Message-
From: Wu, Jiaxin  
Sent: Thursday, January 10, 2019 6:01 PM
To: Ashish Singhal ; edk2-devel@lists.01.org
Cc: Fu, Siyuan 
Subject: RE: [PATCH] NetworkPkg: Protocol Uninstallation Cleanup

Looks good to me.

Reviewed-by: Wu Jiaxin 

Thanks,
Jiaxin

> -Original Message-
> From: Ashish Singhal [mailto:ashishsin...@nvidia.com]
> Sent: Friday, January 11, 2019 3:27 AM
> To: edk2-devel@lists.01.org
> Cc: Fu, Siyuan ; Wu, Jiaxin 
> ; Ashish Singhal 
> Subject: [PATCH] NetworkPkg: Protocol Uninstallation Cleanup
> 
> Use UEFILib provided protocol uninstallation abstraction instead of 
> direct API for a proper cleanup.
> 
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1444
> 
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Ashish Singhal 
> ---
>  NetworkPkg/DnsDxe/DnsDriver.c | 30 ++
>  NetworkPkg/HttpBootDxe/HttpBootDxe.c  | 15 +--
>  NetworkPkg/HttpDxe/HttpDriver.c   | 15 +--
>  NetworkPkg/IpSecDxe/IpSecDriver.c | 15 +--
>  NetworkPkg/TcpDxe/TcpDriver.c | 15 +--
>  NetworkPkg/UefiPxeBcDxe/PxeBcDriver.c | 15 +--
>  6 files changed, 35 insertions(+), 70 deletions(-)
> 
> diff --git a/NetworkPkg/DnsDxe/DnsDriver.c 
> b/NetworkPkg/DnsDxe/DnsDriver.c index 1f9b924..b74f5ba 100644
> --- a/NetworkPkg/DnsDxe/DnsDriver.c
> +++ b/NetworkPkg/DnsDxe/DnsDriver.c
> @@ -510,28 +510,18 @@ DnsDriverEntryPoint (
>  FreePool (mDriverData);
> 
>Error2:
> - gBS->UninstallMultipleProtocolInterfaces (
> -   gDns6DriverBinding.DriverBindingHandle,
> -   &gEfiDriverBindingProtocolGuid,
> -   &gDns6DriverBinding,
> -   &gEfiComponentName2ProtocolGuid,
> -   &gDnsComponentName2,
> -   &gEfiComponentNameProtocolGuid,
> -   &gDnsComponentName,
> -   NULL
> -   );
> + EfiLibUninstallDriverBindingComponentName2 (
> +   &gDns6DriverBinding,
> +   &gDnsComponentName,
> +   &gDnsComponentName2
> +   );
> 
>Error1:
> -gBS->UninstallMultipleProtocolInterfaces (
> -   ImageHandle,
> -   &gEfiDriverBindingProtocolGuid,
> -   &gDns4DriverBinding,
> -   &gEfiComponentName2ProtocolGuid,
> -   &gDnsComponentName2,
> -   &gEfiComponentNameProtocolGuid,
> -   &gDnsComponentName,
> -   NULL
> -   );
> +EfiLibUninstallDriverBindingComponentName2 (
> +  &gDns4DriverBinding,
> +  &gDnsComponentName,
> +  &gDnsComponentName2
> +  );
> 
>return Status;
>  }
> diff --git a/NetworkPkg/HttpBootDxe/HttpBootDxe.c
> b/NetworkPkg/HttpBootDxe/HttpBootDxe.c
> index 7ec06f960..0b16f95 100644
> --- a/NetworkPkg/HttpBootDxe/HttpBootDxe.c
> +++ b/NetworkPkg/HttpBootDxe/HttpBootDxe.c
> @@ -1327,16 +1327,11 @@ HttpBootDxeDriverEntryPoint (
>   &gHttpBootDxeComponentName2
>   );
>if (EFI_ERROR (Status)) {
> -gBS->UninstallMultipleProtocolInterfaces(
> -   ImageHandle,
> -   &gEfiDriverBindingProtocolGuid,
> -   &gHttpBootIp4DxeDriverBinding,
> -   &gEfiComponentName2ProtocolGuid,
> -   &gHttpBootDxeComponentName2,
> -   &gEfiComponentNameProtocolGuid,
> -   &gHttpBootDxeComponentName,
> -   NULL
> -   );
> +EfiLibUninstallDriverBindingComponentName2(
> +  &gHttpBootIp4DxeDriverBinding,
> +  &gHttpBootDxeComponentName,
> +  &gHttpBootDxeComponentName2
> +  );
>}
>return Status;
>  }
> diff --git a/NetworkPkg/HttpDxe/HttpDriver.c 
> b/NetworkPkg/HttpDxe/HttpDriver.c index 8df984d..979d76d 100644
> --- a/NetworkPkg/HttpDxe/HttpDriver.c
> +++ b/NetworkPkg/HttpDxe/HttpDriver.c
> @@ -230,16 +230,11 @@ HttpDxeDriverEntryPoint (
>   &gHttpDxeComponentName2
>   );
>if (EFI_ERROR (Status)) {
> -gBS->UninstallMultipleProtocolInterfaces (
> -   ImageHandle,
> -   &gEfiDriverBindingProtocolGuid,
> -   &gHttpDxeIp4DriverBinding,
> -   &gEfiComponentName2ProtocolGuid,
> -   &gHttpDxeComponentName2,
> -   &gEfiComponentNameProtocolGuid,
> -   &gHttpDxeComponentName,
> -   NULL
> -   );
> +EfiLibUninstallDriverBindingComponentName2 (
> +  &gHttpDxeIp4DriverBinding,
> +  &gHttpDxeComponentName,
> +  &gHttpDxeComponentName2
> +  );
>}
>return Status;
>  }
> diff --git a/NetworkPkg/IpSecDxe/IpSecDriver.c
> b/NetworkPkg/IpSecDxe/IpSecDriver.c
> index f66f89a..3082d99 100644
> --- a/NetworkPkg/IpSecDxe/IpSecDriver.c
> +++ b/NetworkPkg/IpSecDxe/IpSecDriver.c
> @@ -631,16 +631,11 @@ IpSecDriverEntryPoint (
>return Status;
> 
>  ON_UNINSTALL_IPSEC4_DB:
> -  gBS->UninstallMultipleProtocolInterfaces (
> - ImageHandle,
> - &gEfiDriverBindingProtocolGuid,
> - &

Re: [edk2] [PATCH] NetworkPkg: Protocol Uninstallation Cleanup

2019-01-10 Thread Wu, Jiaxin
Looks good to me.

Reviewed-by: Wu Jiaxin 

Thanks,
Jiaxin

> -Original Message-
> From: Ashish Singhal [mailto:ashishsin...@nvidia.com]
> Sent: Friday, January 11, 2019 3:27 AM
> To: edk2-devel@lists.01.org
> Cc: Fu, Siyuan ; Wu, Jiaxin ;
> Ashish Singhal 
> Subject: [PATCH] NetworkPkg: Protocol Uninstallation Cleanup
> 
> Use UEFILib provided protocol uninstallation abstraction
> instead of direct API for a proper cleanup.
> 
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1444
> 
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Ashish Singhal 
> ---
>  NetworkPkg/DnsDxe/DnsDriver.c | 30 ++
>  NetworkPkg/HttpBootDxe/HttpBootDxe.c  | 15 +--
>  NetworkPkg/HttpDxe/HttpDriver.c   | 15 +--
>  NetworkPkg/IpSecDxe/IpSecDriver.c | 15 +--
>  NetworkPkg/TcpDxe/TcpDriver.c | 15 +--
>  NetworkPkg/UefiPxeBcDxe/PxeBcDriver.c | 15 +--
>  6 files changed, 35 insertions(+), 70 deletions(-)
> 
> diff --git a/NetworkPkg/DnsDxe/DnsDriver.c
> b/NetworkPkg/DnsDxe/DnsDriver.c
> index 1f9b924..b74f5ba 100644
> --- a/NetworkPkg/DnsDxe/DnsDriver.c
> +++ b/NetworkPkg/DnsDxe/DnsDriver.c
> @@ -510,28 +510,18 @@ DnsDriverEntryPoint (
>  FreePool (mDriverData);
> 
>Error2:
> - gBS->UninstallMultipleProtocolInterfaces (
> -   gDns6DriverBinding.DriverBindingHandle,
> -   &gEfiDriverBindingProtocolGuid,
> -   &gDns6DriverBinding,
> -   &gEfiComponentName2ProtocolGuid,
> -   &gDnsComponentName2,
> -   &gEfiComponentNameProtocolGuid,
> -   &gDnsComponentName,
> -   NULL
> -   );
> + EfiLibUninstallDriverBindingComponentName2 (
> +   &gDns6DriverBinding,
> +   &gDnsComponentName,
> +   &gDnsComponentName2
> +   );
> 
>Error1:
> -gBS->UninstallMultipleProtocolInterfaces (
> -   ImageHandle,
> -   &gEfiDriverBindingProtocolGuid,
> -   &gDns4DriverBinding,
> -   &gEfiComponentName2ProtocolGuid,
> -   &gDnsComponentName2,
> -   &gEfiComponentNameProtocolGuid,
> -   &gDnsComponentName,
> -   NULL
> -   );
> +EfiLibUninstallDriverBindingComponentName2 (
> +  &gDns4DriverBinding,
> +  &gDnsComponentName,
> +  &gDnsComponentName2
> +  );
> 
>return Status;
>  }
> diff --git a/NetworkPkg/HttpBootDxe/HttpBootDxe.c
> b/NetworkPkg/HttpBootDxe/HttpBootDxe.c
> index 7ec06f960..0b16f95 100644
> --- a/NetworkPkg/HttpBootDxe/HttpBootDxe.c
> +++ b/NetworkPkg/HttpBootDxe/HttpBootDxe.c
> @@ -1327,16 +1327,11 @@ HttpBootDxeDriverEntryPoint (
>   &gHttpBootDxeComponentName2
>   );
>if (EFI_ERROR (Status)) {
> -gBS->UninstallMultipleProtocolInterfaces(
> -   ImageHandle,
> -   &gEfiDriverBindingProtocolGuid,
> -   &gHttpBootIp4DxeDriverBinding,
> -   &gEfiComponentName2ProtocolGuid,
> -   &gHttpBootDxeComponentName2,
> -   &gEfiComponentNameProtocolGuid,
> -   &gHttpBootDxeComponentName,
> -   NULL
> -   );
> +EfiLibUninstallDriverBindingComponentName2(
> +  &gHttpBootIp4DxeDriverBinding,
> +  &gHttpBootDxeComponentName,
> +  &gHttpBootDxeComponentName2
> +  );
>}
>return Status;
>  }
> diff --git a/NetworkPkg/HttpDxe/HttpDriver.c
> b/NetworkPkg/HttpDxe/HttpDriver.c
> index 8df984d..979d76d 100644
> --- a/NetworkPkg/HttpDxe/HttpDriver.c
> +++ b/NetworkPkg/HttpDxe/HttpDriver.c
> @@ -230,16 +230,11 @@ HttpDxeDriverEntryPoint (
>   &gHttpDxeComponentName2
>   );
>if (EFI_ERROR (Status)) {
> -gBS->UninstallMultipleProtocolInterfaces (
> -   ImageHandle,
> -   &gEfiDriverBindingProtocolGuid,
> -   &gHttpDxeIp4DriverBinding,
> -   &gEfiComponentName2ProtocolGuid,
> -   &gHttpDxeComponentName2,
> -   &gEfiComponentNameProtocolGuid,
> -   &gHttpDxeComponentName,
> -   NULL
> -   );
> +EfiLibUninstallDriverBindingComponentName2 (
> +  &gHttpDxeIp4DriverBinding,
> +  &gHttpDxeComponentName,
> +  &gHttpDxeComponentName2
> +  );
>}
>return Status;
>  }
> diff --git a/NetworkPkg/IpSecDxe/IpSecDriver.c
> b/NetworkPkg/IpSecDxe/IpSecDriver.c
> index f66f89a..3082d99 100644
> --- a/NetworkPkg/IpSecDxe/IpSecDriver.c
> +++ b/NetworkPkg/IpSecDxe/IpSecDriver.c
> @@ -631,16 +631,11 @@ IpSecDriverEntryPoint (
>return Status;
> 
>  ON_UNINSTALL_IPSEC4_DB:
> -  gBS->UninstallMultipleProtocolInterfaces (
> - ImageHandle,
> - &gEfiDriverBindingProtocolGuid,
> - &gIpSec4DriverBinding,
> - &gEfiComponentName2ProtocolGuid,
> - &gIpSecComponentName2,
> - &gEfiComponentNameProtocolGuid,
> - &gIpSecComponentName,
> - NULL
> - );
> +  EfiLibUninstallDriverBindingComponentName2 (
> +&gIpSec4DriverBinding,

[edk2] [PATCH] NetworkPkg: Protocol Uninstallation Cleanup

2019-01-10 Thread Ashish Singhal
Use UEFILib provided protocol uninstallation abstraction
instead of direct API for a proper cleanup.

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

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ashish Singhal 
---
 NetworkPkg/DnsDxe/DnsDriver.c | 30 ++
 NetworkPkg/HttpBootDxe/HttpBootDxe.c  | 15 +--
 NetworkPkg/HttpDxe/HttpDriver.c   | 15 +--
 NetworkPkg/IpSecDxe/IpSecDriver.c | 15 +--
 NetworkPkg/TcpDxe/TcpDriver.c | 15 +--
 NetworkPkg/UefiPxeBcDxe/PxeBcDriver.c | 15 +--
 6 files changed, 35 insertions(+), 70 deletions(-)

diff --git a/NetworkPkg/DnsDxe/DnsDriver.c b/NetworkPkg/DnsDxe/DnsDriver.c
index 1f9b924..b74f5ba 100644
--- a/NetworkPkg/DnsDxe/DnsDriver.c
+++ b/NetworkPkg/DnsDxe/DnsDriver.c
@@ -510,28 +510,18 @@ DnsDriverEntryPoint (
 FreePool (mDriverData);
 
   Error2:
- gBS->UninstallMultipleProtocolInterfaces (
-   gDns6DriverBinding.DriverBindingHandle,
-   &gEfiDriverBindingProtocolGuid,
-   &gDns6DriverBinding,
-   &gEfiComponentName2ProtocolGuid,
-   &gDnsComponentName2,
-   &gEfiComponentNameProtocolGuid,
-   &gDnsComponentName,
-   NULL
-   );
+ EfiLibUninstallDriverBindingComponentName2 (
+   &gDns6DriverBinding,
+   &gDnsComponentName,
+   &gDnsComponentName2
+   );
 
   Error1:
-gBS->UninstallMultipleProtocolInterfaces (
-   ImageHandle,
-   &gEfiDriverBindingProtocolGuid,
-   &gDns4DriverBinding,
-   &gEfiComponentName2ProtocolGuid,
-   &gDnsComponentName2,
-   &gEfiComponentNameProtocolGuid,
-   &gDnsComponentName,
-   NULL
-   );
+EfiLibUninstallDriverBindingComponentName2 (
+  &gDns4DriverBinding,
+  &gDnsComponentName,
+  &gDnsComponentName2
+  );
 
   return Status;
 }
diff --git a/NetworkPkg/HttpBootDxe/HttpBootDxe.c 
b/NetworkPkg/HttpBootDxe/HttpBootDxe.c
index 7ec06f960..0b16f95 100644
--- a/NetworkPkg/HttpBootDxe/HttpBootDxe.c
+++ b/NetworkPkg/HttpBootDxe/HttpBootDxe.c
@@ -1327,16 +1327,11 @@ HttpBootDxeDriverEntryPoint (
  &gHttpBootDxeComponentName2
  );
   if (EFI_ERROR (Status)) {
-gBS->UninstallMultipleProtocolInterfaces(
-   ImageHandle,
-   &gEfiDriverBindingProtocolGuid,
-   &gHttpBootIp4DxeDriverBinding,
-   &gEfiComponentName2ProtocolGuid,
-   &gHttpBootDxeComponentName2,
-   &gEfiComponentNameProtocolGuid,
-   &gHttpBootDxeComponentName,
-   NULL
-   );
+EfiLibUninstallDriverBindingComponentName2(
+  &gHttpBootIp4DxeDriverBinding,
+  &gHttpBootDxeComponentName,
+  &gHttpBootDxeComponentName2
+  );
   }
   return Status;
 }
diff --git a/NetworkPkg/HttpDxe/HttpDriver.c b/NetworkPkg/HttpDxe/HttpDriver.c
index 8df984d..979d76d 100644
--- a/NetworkPkg/HttpDxe/HttpDriver.c
+++ b/NetworkPkg/HttpDxe/HttpDriver.c
@@ -230,16 +230,11 @@ HttpDxeDriverEntryPoint (
  &gHttpDxeComponentName2
  );
   if (EFI_ERROR (Status)) {
-gBS->UninstallMultipleProtocolInterfaces (
-   ImageHandle,
-   &gEfiDriverBindingProtocolGuid,
-   &gHttpDxeIp4DriverBinding,
-   &gEfiComponentName2ProtocolGuid,
-   &gHttpDxeComponentName2,
-   &gEfiComponentNameProtocolGuid,
-   &gHttpDxeComponentName,
-   NULL
-   );
+EfiLibUninstallDriverBindingComponentName2 (
+  &gHttpDxeIp4DriverBinding,
+  &gHttpDxeComponentName,
+  &gHttpDxeComponentName2
+  );
   }
   return Status;
 }
diff --git a/NetworkPkg/IpSecDxe/IpSecDriver.c 
b/NetworkPkg/IpSecDxe/IpSecDriver.c
index f66f89a..3082d99 100644
--- a/NetworkPkg/IpSecDxe/IpSecDriver.c
+++ b/NetworkPkg/IpSecDxe/IpSecDriver.c
@@ -631,16 +631,11 @@ IpSecDriverEntryPoint (
   return Status;
 
 ON_UNINSTALL_IPSEC4_DB:
-  gBS->UninstallMultipleProtocolInterfaces (
- ImageHandle,
- &gEfiDriverBindingProtocolGuid,
- &gIpSec4DriverBinding,
- &gEfiComponentName2ProtocolGuid,
- &gIpSecComponentName2,
- &gEfiComponentNameProtocolGuid,
- &gIpSecComponentName,
- NULL
- );
+  EfiLibUninstallDriverBindingComponentName2 (
+&gIpSec4DriverBinding,
+&gIpSecComponentName,
+&gIpSecComponentName2
+);
 
 ON_UNINSTALL_IPSEC:
   gBS->UninstallProtocolInterface (
diff --git a/NetworkPkg/TcpDxe/TcpDriver.c b/NetworkPkg/TcpDxe/TcpDriver.c
index 2d4b16c..00d172b 100644
--- a/NetworkPkg/TcpDxe/TcpDriver.c
+++ b/NetworkPkg/TcpDxe/TcpDriver.c
@@ -202,16 +202,11 @@ TcpDriverEntryPoint (
  &gTcpComponentName2
  );
   if (EFI_ERROR (Status)) {
-gBS->UninstallMultipleProtocolInterfaces (
-   ImageHandle,
-   &gEfiDriverBindingProtocolGuid,
-   &gTcp4DriverBinding,
-   &gEfiCompon