diff --git a/NetworkPkg/HttpBootDxe/HttpBootImpl.c b/NetworkPkg/HttpBootDxe/HttpBootImpl.c index 4f84e59a2183..6f10bcff39df 100644 --- a/NetworkPkg/HttpBootDxe/HttpBootImpl.c +++ b/NetworkPkg/HttpBootDxe/HttpBootImpl.c @@ -77,11 +77,19 @@ HttpBootUninstallCallback ( IN HTTP_BOOT_PRIVATE_DATA *Private ) { + EFI_HANDLE ControllerHandle; + if (Private->HttpBootCallback == &Private->LoadFileCallback) { + if (!Private->UsingIpv6) { + ControllerHandle = Private->Ip4Nic->Controller; + } else { + ControllerHandle = Private->Ip6Nic->Controller; + } + gBS->UninstallProtocolInterface ( - Private->Controller, + ControllerHandle, &gEfiHttpBootCallbackProtocolGuid, - &Private->HttpBootCallback + Private->HttpBootCallback ); Private->HttpBootCallback = NULL; }