From nobody Tue Sep 29 19:56:09 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4hvTSv17jLz6v4QM for ; Tue, 29 Sep 2026 19:56:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "YR2" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hvTSt6Xrnz4dJ8 for ; Tue, 29 Sep 2026 19:56:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1790711774; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lzD0oeLHRXxQc0lcN6CeDIQo8nlc7YbDD9wmvD3DNUY=; b=k+WGZ86uMaDZ2KAWmqQs0QGRGVtGZ5cRLNF7FBTkKVBnkuheHJjNhaXm3XEiN0QeZ6/joo hDgVhfEZIOFehqiuGwtylOl9p2BScfb/xdZPmlKrPDe4PxxbJncDlRE178NHNI12D7NG0l U3hhp0pD65KvWTkTRM9lnE6PhsFh0fa5/AjYeZQI0L1lmCQcNo5gcxqal7OePL4HDJ3FKm lIcvIrf9lE8yWqAU73y9ff/6K0ea08RKOixal4X2Mw354bgj5C8C4xppZCkeRwDkAtltlY +4VmDSZIYOVHlgVOT84zibj6vRdtj8bzBsMGDK3kh5+iQX/hL5wcjrvTMVZTvw== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1790711774; b=slN87bNijpyRDTX4+3W4PwhOy1zg70nsJqAncyqLeWsOY9w/ysYBNG8NsMCdDge+sIlTHZ 5Cj30UYC8nHZ9pYFP3T2KTECIu4+qwsIE2bU2QaagnPS6Fp4OLMBfu5J5yGVrh/nkuZ575 vq9LYtG/B3gXoLEGtf0fF0dNKuyAEdOTfj7rYHTMTzexTooxMFwNrSp1g9ruTxE6nkp6b8 vY7rxihjTZDSxkGAtHAmkqYmNONvAdEh2gol2jkClVVMK8D7+ZopKbnPsjy/LnIl1PWDz0 yQBJb1T1TM/gXe/3fctkhETn9kKnowzbd9+HqWjHjYOxd0zHM95TdmlnkJlw6A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1790711774; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lzD0oeLHRXxQc0lcN6CeDIQo8nlc7YbDD9wmvD3DNUY=; b=m2UtDa3OSG3sZsUwgBcUbU/muWEaMFaYX2Ux//yq3MDtV7RVfP5FRcSasKQdRFdkS8EbUK zIJPKDN1O2nk/+dDXusuM27xnGH2T1RYzDaFbFA1bE0CqWzJB7nw8ioF4HM89uELkrMoER xCI6ly/95NnBx1hDhXAdQ+RHaZFVZOvgFptuY9+sJYA6Kbq91IYWlxeyeu2DfDKKSnWFVX AjSBo8/qQqahUqfkJdFBrwCNUUGLYCL8fCc9pdmVEPpeojh6yoWcgGdsaWoKu8zJF6yhZN E/6mY/+7lo1wpm7Hl55WCOk6OhfJAtgHNvkWUD/q94WJFKwHegtlPxzr7YOCxg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hvTSt4xrZz1Rjv for ; Tue, 29 Sep 2026 19:56:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 47ecd by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 29 Sep 2026 19:56:09 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Krzysztof Galazka Subject: git: c4640126f116 - main - loader.efi: Apply command-line DHCP overrides earlier List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kgalazka X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: c4640126f1160c3eb939aa138445f4b4ea98efb0 Auto-Submitted: auto-generated Date: Tue, 29 Sep 2026 19:56:09 +0000 Message-Id: <6abc17d9.47ecd.766b7e9a@gitrepo.freebsd.org> The branch main has been updated by kgalazka: URL: https://cgit.FreeBSD.org/src/commit/?id=c4640126f1160c3eb939aa138445f4b4ea98efb0 commit c4640126f1160c3eb939aa138445f4b4ea98efb0 Author: Krzysztof Galazka AuthorDate: 2026-09-29 19:54:54 +0000 Commit: Krzysztof Galazka CommitDate: 2026-09-29 19:55:17 +0000 loader.efi: Apply command-line DHCP overrides earlier Ability to override DHCP options with command-line arguments was affected by intoduction of initmd support. Initmd discovery configures the network before loader arguments were parsed, so a dhcp.root-path override was unavailable during the first network configuration. Move parsing arguments earlier and apply dhcp.root-path even if DHCP response does not contain option 17. This allows providing a dynamic NFS root e.g. by chain loading loader.efi from iPXE. Signed-off-by: Krzysztof Galazka Reviewed by: imp Assisted by: Github Copilot (GPT-5.6 Sol) Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D59998 --- stand/common/dev_net.c | 3 +++ stand/efi/loader/main.c | 7 ++++++- stand/libsa/bootp.c | 4 +--- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/stand/common/dev_net.c b/stand/common/dev_net.c index 897b09c648eb..aecb5bcde81c 100644 --- a/stand/common/dev_net.c +++ b/stand/common/dev_net.c @@ -248,6 +248,7 @@ static int net_getparams(int sock) { char buf[MAXHOSTNAMELEN]; + const char *val; n_long rootaddr, smask; #ifdef SUPPORT_BOOTP @@ -306,6 +307,8 @@ net_getparams(int sock) return (EIO); } exit: + if ((val = getenv("dhcp.root-path")) != NULL) + strlcpy(rootpath, val, sizeof(rootpath)); if ((rootaddr = net_parse_rootpath()) != htonl(INADDR_NONE)) rootip.s_addr = rootaddr; diff --git a/stand/efi/loader/main.c b/stand/efi/loader/main.c index fa4647101d62..bfb221ee80f5 100644 --- a/stand/efi/loader/main.c +++ b/stand/efi/loader/main.c @@ -1382,6 +1382,12 @@ main(int argc, CHAR16 *argv[]) devinit(); + /* + * Parse command line arguments before any operation that may configure + * the network so DHCP overrides are available on the first attempt. + */ + howto = parse_args(argc, argv); + /* * If we didn't find a ipxe image, and we're netbooting, try to * download an initmd that the dhcp server tells us about. @@ -1394,7 +1400,6 @@ main(int argc, CHAR16 *argv[]) * args (eg -h) or via the UEFI ConOut variable. */ has_kbd = has_keyboard(); - howto = parse_args(argc, argv); if (!has_kbd && (howto & RB_PROBE)) howto |= RB_SERIAL | RB_MULTIPLE; howto &= ~RB_PROBE; diff --git a/stand/libsa/bootp.c b/stand/libsa/bootp.c index f708006169d0..8cbcede7bb0e 100644 --- a/stand/libsa/bootp.c +++ b/stand/libsa/bootp.c @@ -474,9 +474,7 @@ vend_rfc1048(u_char *cp, u_int len) bcopy(cp, &rootip.s_addr, sizeof(rootip.s_addr)); } if (tag == TAG_ROOTPATH) { - if ((val = getenv("dhcp.root-path")) == NULL) - val = (const char *)cp; - strlcpy(rootpath, val, sizeof(rootpath)); + strlcpy(rootpath, (const char *)cp, sizeof(rootpath)); } if (tag == TAG_HOSTNAME) { if ((val = getenv("dhcp.host-name")) == NULL)