summaryrefslogtreecommitdiffstats
path: root/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c
diff options
context:
space:
mode:
authorFu Siyuan <siyuan.fu@intel.com>2015-10-16 07:18:38 +0000
committersfu5 <sfu5@Edk2>2015-10-16 07:18:38 +0000
commit30268f29bd38a8e07b9914a1be00583c172c4c40 (patch)
tree9aa0042cb18afc9d495c2b665c7ae73b3fad2b89 /MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c
parentfe3ca12d06a534e5f10587a52730f5fd43dab831 (diff)
downloadedk2-30268f29bd38a8e07b9914a1be00583c172c4c40.tar.gz
edk2-30268f29bd38a8e07b9914a1be00583c172c4c40.tar.bz2
edk2-30268f29bd38a8e07b9914a1be00583c172c4c40.zip
MdeModulePkg: reset DHCP child when leaving PXE LoadFile.
The DHCP4 can have only one configured child instance so we need to reset the DHCP4 child when leaving PXE driver's LoadFile() function, otherwise the other programs which also need to use DHCP4 (like HTTP boot) will be impacted. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Fu Siyuan <siyuan.fu@intel.com> Reviewed-by: Sriram Subramanian <sriram-s@hpe.com> Reviewed-by: Ye Ting <ting.ye@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18615 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c')
-rw-r--r--MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c b/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c
index 72923f1b38..89977e6690 100644
--- a/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c
+++ b/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c
@@ -2902,9 +2902,14 @@ EfiPxeLoadFile (
//
if (Status == EFI_SUCCESS) {
//
+ // The DHCP4 can have only one configured child instance so we need to stop
+ // reset the DHCP4 child before we return. Otherwise the other programs which
+ // also need to use DHCP4 will be impacted.
// The functionality of PXE Base Code protocol will not be stopped,
// when downloading is successfully.
//
+ Private->Dhcp4->Stop (Private->Dhcp4);
+ Private->Dhcp4->Configure (Private->Dhcp4, NULL);
return EFI_SUCCESS;
} else if (Status == EFI_BUFFER_TOO_SMALL) {