From nobody Thu Jul 30 01:09:59 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 4h9WMd4kBrz6nCsK for ; Thu, 30 Jul 2026 01:10:05 +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 4h9WMd14cRz40Px for ; Thu, 30 Jul 2026 01:10:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1785373805; 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=MBbzZr1Yo/8uTjZxnOiC9QJfak2Tmg8ed+xdTy4pgng=; b=yZwXExeks+n3O+mAido0u+6FrB/gZrkWjJGhB0wkYSuNvyXs7TW+P6cWL9WFweJGqwzpGe DIcRFvE88xdjhWddnaxRaEgoqUHgOHJURBARLSj6+M9b8/x0XHgcPaJDaPo4IRg4gDoY9r yi7U53To+gK/8g6ecOOht9qwPAfnyzYq9E1tdr3MbWYJ3VyxiaCXE/dXBv7pEFK0vkpJqf dsheA3QQS2Pb08qjN6/ypkGeVbaqVJyMbpvPRgiULRS94ExDWypfZZyNpL6c9W1rmM9F9L NHzFlHXX1F9YI8/Zh0Y//SMvVnAkovj9n5ikK+oLUHmEKB+ZCT2lOkT9IdU1uA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1785373805; a=rsa-sha256; cv=none; b=Jue+k0l2i+lDyCUF+LI8yezxR044e1f1vERg6vKqjCeziGal3SgnnONmGU6tJV02q637T7 GrU1qWsEc7SE8JvEFLQN6U7W3FMM7ZWxUpMFqrMz9/vXLMxgdt09vauBf9KY+00h9oRUIA 2ViQU2/fr2DEgf5DkAScHRIJm5wR9O0obrb86Xa2zCspdRwfKmPpwGhEr1sNp6MaDNkk7i L1fAUVKEiXzMZOxuGPzmu0rGK1xFoGuJGIexRs0r5Cge5jJY4LTnOgoWPx6nOxJC6bG3HX 7Pf646E2tTj6bRuK5a1i4q6buOB1xsHdF1DeMM/2V5Te9TVQCPFTyKWw012Sxw== 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=1785373805; 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=MBbzZr1Yo/8uTjZxnOiC9QJfak2Tmg8ed+xdTy4pgng=; b=FpvSBAtOEqoQnxzmE6tp8Ck3qZfLkqpY22F9LUr+Cihhy1sv2gsx01HtsG1VkbdF7ShX68 K7YgihyRMOKXwmbvnoX9Rmm9LXb42HAkdAIrRx6hr2hZcuzv8X2XrO7MDrgQum4GdTP4TD 8fZBh0TCtWQhgyMIKFnS9SmdC5vjmDM1IN031RLoHVOVmSiDiGf82re7klBrEGBAcCMHh7 8C6J9n9ZauA3cKhzqEm1Uh2ZOJzYqAb16YeF+XRb/3m64tqYA5ZC7TYjMcrbvXpTfFhIjz hktyGEOecLN1CuULlrD6ZVAMHI8gbT/hHr1K14AGbYgpRzVG3N90SeaA2EDPIw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4h9WMc6zy7zrWs for ; Thu, 30 Jul 2026 01:10:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3f449 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 30 Jul 2026 01:09:59 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kevin Bowling Subject: git: 621498b58cda - main - pci_iov: Clear NumVFs when configuration fails 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/main X-Git-Reftype: branch X-Git-Commit: 621498b58cdab36a237d5f0b5c902952ad743fa9 Auto-Submitted: auto-generated Date: Thu, 30 Jul 2026 01:09:59 +0000 Message-Id: <6a6aa467.3f449.348014c6@gitrepo.freebsd.org> The branch main has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=621498b58cdab36a237d5f0b5c902952ad743fa9 commit 621498b58cdab36a237d5f0b5c902952ad743fa9 Author: Kevin Bowling AuthorDate: 2026-07-28 23:30:28 +0000 Commit: Kevin Bowling CommitDate: 2026-07-30 00:43:03 +0000 pci_iov: Clear NumVFs when configuration fails pci_iov_config() programs NumVFs before validating the final VF RID layout and allocating all generic resources. A subsequent error ran the driver uninit callback but left the hardware NumVFs register programmed while the software VF count returned to zero. Clear NumVFs in the error path after the driver uninit callback, matching normal SR-IOV teardown ordering. This prevents stale hardware state after a failed configuration and permits a clean retry. MFC after: 1 week Sponsored by: BBOX.io --- sys/dev/pci/pci_iov.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/dev/pci/pci_iov.c b/sys/dev/pci/pci_iov.c index 932d83536b7f..643f0e59b9b8 100644 --- a/sys/dev/pci/pci_iov.c +++ b/sys/dev/pci/pci_iov.c @@ -807,8 +807,10 @@ pci_iov_config(struct cdev *cdev, struct pci_iov_arg *arg) return (0); out: - if (iov_inited) + if (iov_inited) { PCI_IOV_UNINIT(dev); + IOV_WRITE(dinfo, PCIR_SRIOV_NUM_VFS, 0, 2); + } for (i = 0; i <= PCIR_MAX_BAR_0; i++) { if (iov->iov_bar[i].res != NULL) {