]> git.proxmox.com Git - mirror_edk2.git/commitdiff
NetworkPkg/UefiPxeBcDxe: Fix Pxe.Dhcp() return status code.
authorJiaxin Wu <jiaxin.wu@intel.com>
Tue, 12 Dec 2017 03:02:47 +0000 (11:02 +0800)
committerJiaxin Wu <jiaxin.wu@intel.com>
Fri, 15 Dec 2017 00:46:31 +0000 (08:46 +0800)
According UEFI Spec, if valid PXE offer is not received, Pxe.Dhcp()
should return EFI_NO_RESPONSE, but currently, EFI_TIMEOUT is returned
from Pxe.Dhcp().

This patch is to fix the above issue.

Cc: Ye Ting <ting.ye@intel.com>
Cc: Fu Siyuan <siyuan.fu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Wu Jiaxin <jiaxin.wu@intel.com>
Reviewed-by: Fu Siyuan <siyuan.fu@intel.com>
NetworkPkg/UefiPxeBcDxe/PxeBcBoot.c
NetworkPkg/UefiPxeBcDxe/PxeBcDhcp4.c

index fc50a82959d40bf162741fa1a64ed17c45067def..0bb1d661e5016e5c701235df202fa9fa1b9c35b8 100644 (file)
@@ -1242,7 +1242,7 @@ ON_EXIT:
   } else if (Status == EFI_NO_MEDIA) {\r
     AsciiPrint ("\n  PXE-E12: Could not detect network connection.\n");\r
   } else if (Status == EFI_NO_RESPONSE) {\r
-    AsciiPrint ("\n  PXE-E16: No offer received.\n");\r
+    AsciiPrint ("\n  PXE-E16: No valid offer received.\n");\r
   } else if (Status == EFI_TIMEOUT) {\r
     AsciiPrint ("\n  PXE-E18: Server response timeout.\n");\r
   } else if (Status == EFI_ABORTED) {\r
index 97829e984267b35719bd5e10b7543f7f2f8c2bf3..101c65824af4dd19d84eaecdde1294d640a4578a 100644 (file)
@@ -1707,6 +1707,11 @@ PxeBcDhcp4Dora (
     if (Status == EFI_ICMP_ERROR) {\r
       PxeMode->IcmpErrorReceived = TRUE;\r
     }\r
+\r
+    if (Status == EFI_TIMEOUT && Private->OfferNum > 0) {\r
+      Status = EFI_NO_RESPONSE;\r
+    }\r
+    \r
     goto ON_EXIT;\r
   }\r
 \r