diff options
author | vanjeff <vanjeff@6f19259b-4bc3-4df7-8a09-765794883524> | 2008-04-03 05:51:57 +0000 |
---|---|---|
committer | vanjeff <vanjeff@6f19259b-4bc3-4df7-8a09-765794883524> | 2008-04-03 05:51:57 +0000 |
commit | aa6c4e3c99a165f6ab5bf27b460c69018c29bb7b (patch) | |
tree | 6c3c9c2914f60ef9ee34abe09e7c38d87f3a318a /MdeModulePkg | |
parent | c311f86b23f334412fa0b57ede8b4daec7ec66fe (diff) | |
download | edk2-platforms-aa6c4e3c99a165f6ab5bf27b460c69018c29bb7b.tar.xz |
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
Diffstat (limited to 'MdeModulePkg')
-rw-r--r-- | MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcDriver.c | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcDriver.c b/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcDriver.c index c8ee1f7266..9d26b135f5 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,
|