summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvanjeff <vanjeff@6f19259b-4bc3-4df7-8a09-765794883524>2008-04-03 05:51:57 +0000
committervanjeff <vanjeff@6f19259b-4bc3-4df7-8a09-765794883524>2008-04-03 05:51:57 +0000
commitaa6c4e3c99a165f6ab5bf27b460c69018c29bb7b (patch)
tree6c3c9c2914f60ef9ee34abe09e7c38d87f3a318a
parentc311f86b23f334412fa0b57ede8b4daec7ec66fe (diff)
downloadedk2-aa6c4e3c99a165f6ab5bf27b460c69018c29bb7b.zip
edk2-aa6c4e3c99a165f6ab5bf27b460c69018c29bb7b.tar.gz
edk2-aa6c4e3c99a165f6ab5bf27b460c69018c29bb7b.tar.bz2
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
-rw-r--r--MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcDriver.c26
1 files changed, 21 insertions, 5 deletions
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,