From aa6c4e3c99a165f6ab5bf27b460c69018c29bb7b Mon Sep 17 00:00:00 2001 From: vanjeff Date: Thu, 3 Apr 2008 05:51:57 +0000 Subject: fixed bug in stop() function, that made stop() failure. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4986 6f19259b-4bc3-4df7-8a09-765794883524 --- .../Universal/Network/UefiPxeBcDxe/PxeBcDriver.c | 26 +++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) (limited to 'MdeModulePkg') diff --git a/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcDriver.c b/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcDriver.c index c8ee1f7..9d26b13 100644 --- a/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcDriver.c +++ b/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcDriver.c @@ -444,19 +444,22 @@ PxeBcDriverBindingStop ( EFI_STATUS Status; NicHandle = NetLibGetNicHandle (ControllerHandle, &gEfiArpProtocolGuid); - if (NicHandle == NULL) { - NicHandle = NetLibGetNicHandle (ControllerHandle, &gEfiDhcp4ProtocolGuid); if (NicHandle == NULL) { - - NicHandle = NetLibGetNicHandle (ControllerHandle, &gEfiMtftp4ProtocolGuid); + NicHandle = NetLibGetNicHandle (ControllerHandle, &gEfiIp4ProtocolGuid); if (NicHandle == NULL) { + NicHandle = NetLibGetNicHandle (ControllerHandle, &gEfiUdp4ProtocolGuid); - return EFI_DEVICE_ERROR; + if (NicHandle == NULL) { + NicHandle = NetLibGetNicHandle (ControllerHandle, &gEfiMtftp4ProtocolGuid); + if (NicHandle == NULL) { + return EFI_DEVICE_ERROR; + } + } } } } @@ -527,6 +530,19 @@ PxeBcDriverBindingStop ( ); gBS->CloseProtocol ( + Private->Ip4Child, + &gEfiIp4ProtocolGuid, + This->DriverBindingHandle, + NicHandle + ); + NetLibDestroyServiceChild ( + NicHandle, + This->DriverBindingHandle, + &gEfiIp4ServiceBindingProtocolGuid, + Private->Ip4Child + ); + + gBS->CloseProtocol ( Private->ArpChild, &gEfiArpProtocolGuid, This->DriverBindingHandle, -- cgit v1.1