From nobody Tue Jun 23 19:11:36 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 4glF6c5ZLPz6hx3h for ; Tue, 23 Jun 2026 19:11:36 +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 4glF6c2Xqvz3xNL for ; Tue, 23 Jun 2026 19:11:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1782241896; 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=ituqlzkag3Wseaj1nSQFeZFoIlY84j7foA8r3VWF4YM=; b=A6QP859u4dWHOkUd+TBa/Fygt2mr636O53qHMK2JBRC41DxqDG2UNkcoftxbmJ8KEI59Qj pZRHEbjawOMz798dTgSbObrRNo55mqmkU11E0NCsxEgY2tr1Wl1onzwXBVMceEhEO6ZdPF 7CLp4rv7rd5MBn3jE0yVOIi8CowSXL5HXzbI3Uo+M30G+SPv6CHysVevJDkkOONsfFZZFE suRD65Cpw/PlObYsAjQ/ljF5RXrwlH7RN545KtkDi7vVwMI131PdqNrIhsPI4WusyvPgPj fHNxNaugWzta0Ahar31niO10FS2m3Ad2JJucaXlWf0aLpbezt0Jv1DRLv8j+EA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1782241896; a=rsa-sha256; cv=none; b=C2iqake0JsnV9DXURpqkwQi8vxktC4eLoyu7wIVYZ1Z+0kujJjxjjEgAPXVdHkjNfT1SBS yzgL2JHidM9tFH1f1eMm5w4PCY8k/07ZkItwIf8zYmN36DL57kfQ3pXZJ9Z1suiqkzQdj7 a4unR2kp3IvmdjgG7ls46Q+sRIOkpehS4r+hSKF+9oQ2eJvEi7VAjyLaVgtxRD+zhuU+7M 5f1I/rS35GVuZ6O13nfrYNr0jJb4X8NCExYW0YLAP1aTK54TYDyVCDxGrcn0XwGSOTTPFv UHYyDwiWbKrZYUvnUrv7jcGst7caeGq/qIg1Qy7fv2/76OLvJg2s0vS99OzOVw== 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=1782241896; 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=ituqlzkag3Wseaj1nSQFeZFoIlY84j7foA8r3VWF4YM=; b=AQmz4jXSxARyYnLe0j5CZcPACtVM1yFci6Q63EY4F6kAUr7Qz/11gD9Nq5Z/Z4ajNuk9KW MPfQ9kjbGeiIo9mUwnWRWso4l3BLvSc+z8hXeUQyXZ17j16dZTlF3Pe/fPafZw3XjYMoPV C3AKD9pREEN/9KdF2g38wr/16EdgT05Geu54ZIivxzyFjYf9RLrdVkUuROYVEshO4x/FR2 V17aVsWL4dunHkq5u+1O0gujUwVXHPD8NgU9i/yhOkXXaT1WClcYlP9I7Q0PTvSVPFkQYK j2hk/KFM+LYuofmxQxpTDITwXkaInHl4sta1vE/C/HvnODi3RKzDmCRPdYOxqg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4glF6c1ZwtznL5 for ; Tue, 23 Jun 2026 19:11:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3fefe by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 23 Jun 2026 19:11:36 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 0603a7459fc1 - stable/14 - pci: Add is_pci_device helper function 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: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 0603a7459fc1d04a0415af37fd5f45c2ef3f13dc Auto-Submitted: auto-generated Date: Tue, 23 Jun 2026 19:11:36 +0000 Message-Id: <6a3ada68.3fefe.1c75b4e5@gitrepo.freebsd.org> The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=0603a7459fc1d04a0415af37fd5f45c2ef3f13dc commit 0603a7459fc1d04a0415af37fd5f45c2ef3f13dc Author: John Baldwin AuthorDate: 2026-05-18 18:50:39 +0000 Commit: John Baldwin CommitDate: 2026-06-23 16:08:58 +0000 pci: Add is_pci_device helper function This returns true if a given device is a PCI device (child of a PCI bus). Reviewed by: bz, kib Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D56996 (cherry picked from commit ffcf5e356644252f2f6c89ba01057af45c216559) --- share/man/man9/Makefile | 3 ++- share/man/man9/pci.9 | 11 ++++++++++- sys/dev/pci/pci.c | 11 +++++++++++ sys/dev/pci/pcivar.h | 1 + 4 files changed, 24 insertions(+), 2 deletions(-) diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile index a0af571a4e9b..4e275e3099e9 100644 --- a/share/man/man9/Makefile +++ b/share/man/man9/Makefile @@ -1782,7 +1782,8 @@ MLINKS+=osd.9 osd_call.9 \ osd.9 osd_set_reserved.9 MLINKS+=panic.9 vpanic.9 \ panic.9 KERNEL_PANICKED.9 -MLINKS+=pci.9 pci_alloc_msi.9 \ +MLINKS+=pci.9 is_pci_device.9 \ + pci.9 pci_alloc_msi.9 \ pci.9 pci_alloc_msix.9 \ pci.9 pci_clear_pme.9 \ pci.9 pci_disable_busmaster.9 \ diff --git a/share/man/man9/pci.9 b/share/man/man9/pci.9 index b01b51683b4f..3aacda94eaca 100644 --- a/share/man/man9/pci.9 +++ b/share/man/man9/pci.9 @@ -23,11 +23,12 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd March 27, 2025 +.Dd May 18, 2026 .Dt PCI 9 .Os .Sh NAME .Nm pci , +.Nm is_pci_device , .Nm pci_alloc_msi , .Nm pci_alloc_msix , .Nm pci_clear_pme , @@ -80,6 +81,8 @@ .In sys/bus.h .In dev/pci/pcireg.h .In dev/pci/pcivar.h +.Ft bool +.Fn is_pci_device "device_t dev" .Ft int .Fn pci_alloc_msi "device_t dev" "int *count" .Ft int @@ -202,6 +205,12 @@ device information, device configuration, and message signaled interrupts. +.Pp +The +.Fn is_pci_device +function can be used to determine if +.Fa dev +is a PCI device. .Ss Raw Configuration Access The .Fn pci_read_config diff --git a/sys/dev/pci/pci.c b/sys/dev/pci/pci.c index 58fdbe1703f1..bf9797784362 100644 --- a/sys/dev/pci/pci.c +++ b/sys/dev/pci/pci.c @@ -6995,6 +6995,17 @@ pci_print_faulted_dev(void) } } +bool +is_pci_device(device_t dev) +{ + devclass_t pci_class; + + if (device_get_parent(dev) == NULL) + return (false); + pci_class = devclass_find("pci"); + return (device_get_devclass(device_get_parent(dev)) == pci_class); +} + #ifdef DDB DB_SHOW_COMMAND_FLAGS(pcierr, pci_print_faulted_dev_db, DB_CMD_MEMSAFE) { diff --git a/sys/dev/pci/pcivar.h b/sys/dev/pci/pcivar.h index c69f2b1e09bd..9f8ca069af88 100644 --- a/sys/dev/pci/pcivar.h +++ b/sys/dev/pci/pcivar.h @@ -663,6 +663,7 @@ pci_child_added(device_t dev) return (PCI_CHILD_ADDED(device_get_parent(dev), dev)); } +bool is_pci_device(device_t dev); device_t pci_find_bsf(uint8_t, uint8_t, uint8_t); device_t pci_find_dbsf(uint32_t, uint8_t, uint8_t, uint8_t); device_t pci_find_device(uint16_t, uint16_t);