From nobody Sun Aug 16 20:55:15 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 4hNSsH6rqzz6pb8r for ; Sun, 16 Aug 2026 20:55: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 4hNSsH3pFGz46LH for ; Sun, 16 Aug 2026 20:55:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786913715; 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=syTJ8rKG3cJhOsXx3EOBaxw1GekBWNvn7ovUKb/MINE=; b=f+eTEPNRg9K8FwpbZNkRHSedn9uwul4eBXTj3hihuamhW8AdNCwXW4PCsxbc6M6l03Ih0z IhQ7vZn/tZBzYOLqHBfQSzMveZeQeMNPq3FPJsZrOf7Scp2raTb2hrt7viZMIsHzM6dBEG z0odil5arjk8D4JBqJkndg+eHeTQk7wsZ34NLaCu0vWO3weCOOyGcFlZ3QD+to+0eQPeh3 xbx00wg6XbWp8EvCD+2WdFLyQMDB0GoHk7ze2dgQ3cDEuGHu25HLiZ0IS69/jdOVdWB79N V2jP4Wo+othc6kApGLXuMDJU0GEjAzAg1WGeHpFdiT8poJiqG1bRv4DrVWMtlA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786913715; a=rsa-sha256; cv=none; b=ACgXaixpH/w4egAGLP7Adm3g2pPU1DzWmr+zeZZ5kjVpnXuVBfxhYHscpXH6X5rrqFCies s74kedL4CXabDPLHwZZ4hUtEOHbNmTOBucgdMINIFhntqInzEyze3SiNCKJnjzt6vYY16b tgfmAR0rrCE1NUcF03oRt/xIKbiFvELdwUmSM+iSqUF6sc++ZWBAJxv12rQTpSw7Y4Ed75 h3W8XuglMpLwwqtgUKnK9OQUMMBNOqGxu7V4ZjZFT+H/mTwBeLHNpfBuNT9CqSD7dIiKGM lEnsgFurnmYL1OjWXRZBQvv+YPpn0uqUy6pQWjyGvnr+W/YJjRONVdeVIx0IBw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786913715; 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=syTJ8rKG3cJhOsXx3EOBaxw1GekBWNvn7ovUKb/MINE=; b=ME+mGFQQ6/FuxvWEYOR37R6kZIK02xle1aD89qwuPFW1SDsYL3CIhp/6SQZY/wy6ySY+aX GdOkiTNkx6onwVoSJvR72XN1j1FmPCRLXK8prZ+BsZ4JNPwC3usCu5Oak6ujWFMYiL36eR LH1vpPDkhD4L6efZ2Gh6p/nPX3MbvEZVzzR4GvtoS/C6Zby74rq4ct0vx3/CEVI4iLoaL0 wtVdvTJsr8SfPutuRW04D+1mhqMTu2rNUO1kIo+NXIBz5MJhAApm/YP37VzLkmyftRRfxD kIjdO95hbYYGQ/mCn/V8Xvmq0D/36s+T1jTQJ3JolTN7iynWNx7yP5Gwa2bTPw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hNSsH2QdTzlGB for ; Sun, 16 Aug 2026 20:55:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 18a1b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sun, 16 Aug 2026 20:55:15 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kevin Bowling Subject: git: da1cc3eeb365 - stable/14 - ixv: reconcile the PF-approved MAC address 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: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: da1cc3eeb3657673a6a3a502cdfd343075b82a44 Auto-Submitted: auto-generated Date: Sun, 16 Aug 2026 20:55:15 +0000 Message-Id: <6a8223b3.18a1b.2751fbfc@gitrepo.freebsd.org> The branch stable/14 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=da1cc3eeb3657673a6a3a502cdfd343075b82a44 commit da1cc3eeb3657673a6a3a502cdfd343075b82a44 Author: Kevin Bowling AuthorDate: 2026-07-31 12:59:24 +0000 Commit: Kevin Bowling CommitDate: 2026-08-16 20:49:51 +0000 ixv: reconcile the PF-approved MAC address The shared VF set-RAR helper restores hw.mac.addr when the PF rejects a requested address, but ixv ignores the error and leaves the interface link-layer address unchanged. Subsequent initialization repeats the rejected request while the interface appears to use an address the PF will not deliver. Refresh the permanent address returned by the PF after every successful reset handshake. Copy the resulting PF-approved address back to the interface and emit the normal link-layer address notification without re-entering the driver initialization path. This also recovers from a prior mailbox transport failure or a PF-side reassignment. Adapt the igb VF address reconciliation added in a6bb3850e7c6. (cherry picked from commit 4c03feacd17199a4d8689e4415992111c99e6220) --- sys/dev/ixgbe/if_ixv.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/sys/dev/ixgbe/if_ixv.c b/sys/dev/ixgbe/if_ixv.c index f5e505308aa7..f5af6a53da49 100644 --- a/sys/dev/ixgbe/if_ixv.c +++ b/sys/dev/ixgbe/if_ixv.c @@ -99,6 +99,7 @@ static void ixv_if_update_admin_status(if_ctx_t); static int ixv_if_msix_intr_assign(if_ctx_t, int); static int ixv_if_mtu_set(if_ctx_t, uint32_t); +static void ixv_reconcile_mac(struct ixgbe_softc *, if_t); static void ixv_if_init(if_ctx_t); static void ixv_if_local_timer(if_ctx_t, uint16_t); static void ixv_if_stop(if_ctx_t); @@ -591,6 +592,29 @@ ixv_if_mtu_set(if_ctx_t ctx, uint32_t mtu) return error; } /* ixv_if_mtu_set */ +static void +ixv_reconcile_mac(struct ixgbe_softc *sc, if_t ifp) +{ + uint8_t *lladdr; + + if (ixgbe_validate_mac_addr(sc->hw.mac.addr) != IXGBE_SUCCESS) + return; + lladdr = (uint8_t *)if_getlladdr(ifp); + if (bcmp(lladdr, sc->hw.mac.addr, ETHER_ADDR_LEN) == 0) + return; + + device_printf(sc->dev, + "PF rejected or replaced the requested MAC; using %6D\n", + sc->hw.mac.addr, ":"); + /* + * Initialization holds the context lock; avoid re-entering the driver. + */ + bcopy(sc->hw.mac.addr, lladdr, ETHER_ADDR_LEN); + CURVNET_SET_QUIET(if_getvnet(ifp)); + EVENTHANDLER_INVOKE(iflladdr_event, ifp); + CURVNET_RESTORE(); +} /* ixv_reconcile_mac */ + /************************************************************************ * ixv_if_init - Init entry point * @@ -624,6 +648,8 @@ ixv_if_init(if_ctx_t ctx) /* Reset VF and renegotiate mailbox API version */ hw->mac.ops.reset_hw(hw); hw->mac.ops.start_hw(hw); + hw->mac.ops.get_mac_addr(hw, hw->mac.addr); + ixv_reconcile_mac(sc, ifp); error = ixv_negotiate_api(sc); if (error) { device_printf(dev,