From nobody Sun Aug 16 20:47:43 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 4hNShb2tFcz6pb0Z for ; Sun, 16 Aug 2026 20:47:43 +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 4hNShb27xzz420R for ; Sun, 16 Aug 2026 20:47:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786913263; 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=5vA9Tyx80xCspVfsYqmstzvd+eehtH+ZfdrzgjiQDTU=; b=ZfbxT8zxUoF8Av7+WGWLZx9QdwYagzu6wvz3wQBAboghfUMCW5BggripF6i5xdVmEGsiS1 CLZaYxaQ/INYOGzsJybeRpmIyutWwddAC1jUGl+Xyn16Xz0AKWS+FEGhuZuUKCob4qnH/C Hf+Zxd5a+EpPMfEPqxyrz/KHI9NsiFvw4M0DH63VoDErItT4Yhq+LvgKI+9aEu+MF+hfXa CTfWSFphZjvebcIm2yU1YPQ58m8W09F1CxlxkVmJeS9i9HPdMWpJOUnAp2Xmv2gk9O1k6j UUYRuTG48Wv1H8SF8vKQZ4V9YfBCsHoJFJxv4ZeVWiu8q1c1h0yKmvnDGfuuAA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786913263; a=rsa-sha256; cv=none; b=xmhv9+bbUV5+owEN4QAi3/wkb3qcPIQDjaQWFN7Z2T8grVA7l3K+Xu4OSCy/qTCW1/LdaV aGgIwbsueJ3y9IhXIPf7J/6Bd90IzvlG907boM/kNa42joSs76ABnKhS15KQ9LXFWUB/v5 NXjynjfeDVJn5UcjG1/w3feizs7A4PMdZjp1Mv8O7idgLIZbilrQ/0XtARLFoHIBAvL/eP b3ZVitjGVCmxytTT1yFE5CWagaC3T03pSSRptwMGS+YPqrSKMy5pdDKDPn0FdCAad6F2pD me2ehoVOyb1q+HCgj7k8snWWnNyImCmBlkZ/qb1MstYGEr6MckQQZgr86gLpoQ== 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=1786913263; 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=5vA9Tyx80xCspVfsYqmstzvd+eehtH+ZfdrzgjiQDTU=; b=JqHj2bllu7osgyEZ0nyVcmvgMquokYBSGwP097rrb9hiKlU8pUABsRcoY028AatYVAi7H/ iZs+ttKtGMUSS8J69Vwqm/UC4avrIVBVA9wPXr75K2PLnsSZvN9nj+Mbs88r+paBzw2nui b0s6XBgYpsuKLQbC19+P6Ka5USEvLdIE9shuO9Y6YALXgXdtykfC5SCKaH1/+CYCCxEKpn C70f5APF3WjS0fQY7lGyKnGCzCA+n/M+c1kO7aCITug95nhkrhZheppnGj12e+ixjJlsWK 1lKunhscc4sD6ms+84LiPvbNnBQwkZN5fLXxXhl3SZXVQVznnJZbTVyygYPz7g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hNShb0WbYzkLh for ; Sun, 16 Aug 2026 20:47:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 47963 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sun, 16 Aug 2026 20:47:43 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kevin Bowling Subject: git: 07b73c334990 - stable/15 - 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/15 X-Git-Reftype: branch X-Git-Commit: 07b73c334990b62f0817aadbf0685ebf462bd053 Auto-Submitted: auto-generated Date: Sun, 16 Aug 2026 20:47:43 +0000 Message-Id: <6a8221ef.47963.4f489622@gitrepo.freebsd.org> The branch stable/15 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=07b73c334990b62f0817aadbf0685ebf462bd053 commit 07b73c334990b62f0817aadbf0685ebf462bd053 Author: Kevin Bowling AuthorDate: 2026-07-31 12:59:24 +0000 Commit: Kevin Bowling CommitDate: 2026-08-16 20:44:22 +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,