From nobody Thu Aug 6 11:26:25 2026 X-Original-To: dev-commits-src-main@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 4hG4jZ1HLKz6msWD for ; Thu, 06 Aug 2026 11:26:26 +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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hG4jZ0Zffz3pLP for ; Thu, 06 Aug 2026 11:26:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786015586; 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=AwTsxGHXyfz8qmOnoqLg3dyzG5CkOl9I6X5OMzRs7Hw=; b=XabPQnVQKMnVnGeluuCpm1CbrzR44YcDI6hUaCWjokNEXyRFAbu/MEV4PBu1FjZK4Dw5HK TLBCgUEeeX68foctXCsbjdD3aiNicxoZnRlKfgwwdCQZHbyo/HMSMGWRSTD5gBTS827oFc o4dcF+/ZgiJbZ8NJNm/wEcuDjU9Lz3t51yKq+VYywu2txlFEIrxX5i+R4uCmWN6NZPY/wg 7yfrFnfQSryxpNijEvpcrwMfTURPZE6YvZ/ztJeayS47EdI48pB4thY7WsTPOHFeoPIg6r ttYAy3NBqk587PaOehqVr2k+q82Mgf8FCVTuw+tLzBtbJUrlHRqZf3SfpcsbPA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786015586; a=rsa-sha256; cv=none; b=EulV+O9L2VxS/C/9jnPh/KQfcG4VjjfAg9JFOOPXSVFB8xsR99ecdsVChhBoTFwm7mszA4 bZg3dZ1iAALnDwUUBhf7IkjQ8dFdC/l+bt3k1cQ0gEDxT62vHTQ311FNDEy8pPnbvXT0Fn ZGbR/UntuAQOlkR5Vj4oU3Hol7iQfJqnjnyZvfEVhjJF/5zCmHXKlDco7g12STUCrsQi55 yK+91RTQPtByrwfu0tf+oQB1EmgvM/X+fYnfwKhq7TniFA+jUarfKGY24Ccns1NSECnEWU uDWFMyRQxpNHe9NLUGse27IFMqjnlZMkaSwWztrZncWldjXnsk+zy3JdUZonDA== 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=1786015586; 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=AwTsxGHXyfz8qmOnoqLg3dyzG5CkOl9I6X5OMzRs7Hw=; b=JnTM+L90AKtl4J3xCtbHhNKgrC9SW44quWBp8pVJ3Vom1ssw2DukSrG+AMSTofav2hMeSi F7puYoLNkaqZ0hA2oTSIKtzEqldYcHlcJdZ04Bu6SIHOxEGvWGofTL+0Iu2ua6eAcVdxuU ZS/BH5ryWzttA1NGi576w7MklWB4l3xbcXqCLniX/CAxw5cV82su4GuBuX7vSQUgL1gce3 2ezL4476+7lNPpbxrn3zU1iM6VM0IAd/BICR0zsXwkJsyt3nG5g7PVyrj+35opaZ1zbV4k jrfPonXhoJK0CUMyo2TkZhHyd/BLOt98zegcaIcKYB2VHMjrDo+VOBp9+OpAAQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hG4jY6JgYz3GS for ; Thu, 06 Aug 2026 11:26:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 262f7 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 06 Aug 2026 11:26:25 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kevin Bowling Subject: git: 4c03feacd171 - main - ixv: reconcile the PF-approved MAC address List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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/main X-Git-Reftype: branch X-Git-Commit: 4c03feacd17199a4d8689e4415992111c99e6220 Auto-Submitted: auto-generated Date: Thu, 06 Aug 2026 11:26:25 +0000 Message-Id: <6a746f61.262f7.4a42be0@gitrepo.freebsd.org> The branch main has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=4c03feacd17199a4d8689e4415992111c99e6220 commit 4c03feacd17199a4d8689e4415992111c99e6220 Author: Kevin Bowling AuthorDate: 2026-07-31 12:59:24 +0000 Commit: Kevin Bowling CommitDate: 2026-08-06 11:25:39 +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. MFC after: 1 week --- 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,