From 09cddd088ced31a99d3b0e4ea2f18a77f2582cd2 Mon Sep 17 00:00:00 2001 From: Jiaxin Wu Date: Tue, 12 Dec 2017 15:26:49 +0800 Subject: [PATCH] NetworkPkg/UefiPxeBcDxe: Correct the handle for PXE Base Code Callback Protocol. According UEFI Spec: The PXE Base Code Callback Protocol must be on the same handle as the PXE Base Code Protocol. But current implementation doesn't follow that. This patch is fix that issue. Cc: Ye Ting Cc: Fu Siyuan Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Wu Jiaxin Reviewed-by: Fu Siyuan --- NetworkPkg/UefiPxeBcDxe/PxeBcBoot.c | 6 +++--- NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/NetworkPkg/UefiPxeBcDxe/PxeBcBoot.c b/NetworkPkg/UefiPxeBcDxe/PxeBcBoot.c index 0bb1d661e5..1f8895fdaa 100644 --- a/NetworkPkg/UefiPxeBcDxe/PxeBcBoot.c +++ b/NetworkPkg/UefiPxeBcDxe/PxeBcBoot.c @@ -994,7 +994,7 @@ PxeBcInstallCallback ( // PxeBc = &Private->PxeBc; Status = gBS->HandleProtocol ( - Private->Controller, + Private->Mode.UsingIpv6 ? Private->Ip6Nic->Controller : Private->Ip4Nic->Controller, &gEfiPxeBaseCodeCallbackProtocolGuid, (VOID **) &Private->PxeBcCallback ); @@ -1010,7 +1010,7 @@ PxeBcInstallCallback ( // Install a default callback if user didn't offer one. // Status = gBS->InstallProtocolInterface ( - &Private->Controller, + Private->Mode.UsingIpv6 ? &Private->Ip6Nic->Controller : &Private->Ip4Nic->Controller, &gEfiPxeBaseCodeCallbackProtocolGuid, EFI_NATIVE_INTERFACE, &Private->LoadFileCallback @@ -1054,7 +1054,7 @@ PxeBcUninstallCallback ( PxeBc->SetParameters (PxeBc, NULL, NULL, NULL, NULL, &NewMakeCallback); gBS->UninstallProtocolInterface ( - Private->Controller, + Private->Mode.UsingIpv6 ? Private->Ip6Nic->Controller : Private->Ip4Nic->Controller, &gEfiPxeBaseCodeCallbackProtocolGuid, &Private->LoadFileCallback ); diff --git a/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c b/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c index ab9e494b56..1fc26c55da 100644 --- a/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c +++ b/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c @@ -1925,7 +1925,7 @@ EfiPxeBcSetParameters ( // Update the previous PxeBcCallback protocol. // Status = gBS->HandleProtocol ( - Private->Controller, + Mode->UsingIpv6 ? Private->Ip6Nic->Controller : Private->Ip4Nic->Controller, &gEfiPxeBaseCodeCallbackProtocolGuid, (VOID **) &Private->PxeBcCallback ); -- 2.39.2