summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeiko Stuebner <heiko@sntech.de>2025-04-02 23:50:25 +0200
committerTom Rini <trini@konsulko.com>2025-04-06 10:03:03 -0600
commit1915fdcc21268c0f5df513461e3ddbb03a26f3c5 (patch)
treeba71b3400f71abd2b19a2e52816901dfa547b39c
parent0708d54a5697e30ea5ecb03f97360e4fcff89719 (diff)
boot: call dhcp_run in pxe bootmethod
A recent change tried to speed up EFI booting by not calling dhcp_run from eth_bootdev_hunt() every time. PXE so far relied on that dhcp_run call to get an IP address. Fix that by adding a dhcp_run call to the pxe bootflow, with autoload disabled to only get the ip address and nothing else. Suggested-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Fixes: 1f68057e0320 ("net: eth_bootdev_hunt() should not run DHCP") Signed-off-by: Heiko Stuebner <heiko@sntech.de>
-rw-r--r--boot/bootmeth_pxe.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/boot/bootmeth_pxe.c b/boot/bootmeth_pxe.c
index b91e61bcbc4..6e5e0f99ea4 100644
--- a/boot/bootmeth_pxe.c
+++ b/boot/bootmeth_pxe.c
@@ -73,6 +73,10 @@ static int extlinux_pxe_read_bootflow(struct udevice *dev,
return log_msg_ret("pxeb", -EPERM);
addr = simple_strtoul(addr_str, NULL, 16);
+ ret = dhcp_run(addr, NULL, false);
+ if (ret)
+ return log_msg_ret("dhc", ret);
+
log_debug("calling pxe_get()\n");
ret = pxe_get(addr, &bootdir, &size, false);
log_debug("pxe_get() returned %d\n", ret);