diff options
author | Zhang Lubo <lubo.zhang@intel.com> | 2015-07-29 07:10:09 +0300 |
---|---|---|
committer | luobozhang <luobozhang@Edk2> | 2015-07-29 07:10:09 +0300 |
commit | ac99793b73a7856f06edcb63a23bf1518febb347 (patch) | |
tree | ed2f08b40b8c9dc44cf4d00445c554a57bf98e0a /NetworkPkg/UefiPxeBcDxe/PxeBcDriver.c | |
parent | 15c9b25e5d363a8f39e9df06cf60f5a45316ae2b (diff) | |
download | edk2-ac99793b73a7856f06edcb63a23bf1518febb347.tar.xz |
NetworkPkg: Fix the issue cannot boot to UEFI Network after reset
DHCP4 service allows only one of its children to be configured
in the active state,If the DHCP4 D.O.R.A started by IP4 auto
configuration and has not been completed, the Dhcp4 state machine
will not be in the right state for the PXE to start a new round D.O.R.A.
so we need to switch it's policy to static.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Zhang Lubo <lubo.zhang@intel.com>
Reviewed-by: Fu Siyuan <siyuan.fu@intel.com>
Reviewed-by: Wu Jiaxin <jiaxin.wu@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18104 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'NetworkPkg/UefiPxeBcDxe/PxeBcDriver.c')
-rw-r--r-- | NetworkPkg/UefiPxeBcDxe/PxeBcDriver.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/NetworkPkg/UefiPxeBcDxe/PxeBcDriver.c b/NetworkPkg/UefiPxeBcDxe/PxeBcDriver.c index c2987b8734..a6f66682f3 100644 --- a/NetworkPkg/UefiPxeBcDxe/PxeBcDriver.c +++ b/NetworkPkg/UefiPxeBcDxe/PxeBcDriver.c @@ -742,6 +742,18 @@ PxeBcCreateIp4Children ( Private->Ip4Nic->Private = Private;
Private->Ip4Nic->Signature = PXEBC_VIRTUAL_NIC_SIGNATURE;
+ //
+ // Locate Ip4->Ip4Config2 and store it for set IPv4 Policy.
+ //
+ Status = gBS->HandleProtocol (
+ ControllerHandle,
+ &gEfiIp4Config2ProtocolGuid,
+ (VOID **) &Private->Ip4Config2
+ );
+ if (EFI_ERROR (Status)) {
+ goto ON_ERROR;
+ }
+
//
// Create a device path node for Ipv4 virtual nic, and append it.
//
|