Date: Fri, 06 Feb 2026 16:15:34 +0000 From: Aymeric Wibo <obiwac@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Cc: Abdelkader Boudih <guest-seuros@FreeBSD.org> Subject: git: 067ad8b31bf6 - main - thunderbolt: Fix tb_pcib device matching to check PCI class Message-ID: <698613a6.1a075.25bbf0ea@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch main has been updated by obiwac: URL: https://cgit.FreeBSD.org/src/commit/?id=067ad8b31bf68b6dcf1ad571746349ed88d63d00 commit 067ad8b31bf68b6dcf1ad571746349ed88d63d00 Author: Abdelkader Boudih <guest-seuros@FreeBSD.org> AuthorDate: 2026-02-06 16:12:56 +0000 Commit: Aymeric Wibo <obiwac@FreeBSD.org> CommitDate: 2026-02-06 16:13:12 +0000 thunderbolt: Fix tb_pcib device matching to check PCI class Light Ridge and earlier Thunderbolt controllers reuse the same device ID (0x1513) for both the NHI (class 0x088000) and PCI bridges (class 0x060400). Without checking the PCI class, tb_pcib would incorrectly match NHI devices, causing a panic when trying to attach bridge code to non-bridge hardware. Add PCI class check to tb_pcib_find_ident() to only match actual PCI-PCI bridges (PCIC_BRIDGE/PCIS_BRIDGE_PCI). Reviewed by: obiwac, jhb Approved by: obiwac, jhb Fixes: 2ed9833791f2 (thunderbolt: Import USB4 code) Differential Revision: https://reviews.freebsd.org/D55102 --- sys/dev/thunderbolt/tb_pcib.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/dev/thunderbolt/tb_pcib.c b/sys/dev/thunderbolt/tb_pcib.c index e6f0115364da..ffb85ebec9ae 100644 --- a/sys/dev/thunderbolt/tb_pcib.c +++ b/sys/dev/thunderbolt/tb_pcib.c @@ -119,6 +119,10 @@ tb_pcib_find_ident(device_t dev) for (n = tb_pcib_identifiers; n->vendor != 0; n++) { if ((n->vendor != v) || (n->device != d)) continue; + /* Only match actual PCI-PCI bridges to avoid conflict with NHI */ + if (pci_get_class(dev) != PCIC_BRIDGE || + pci_get_subclass(dev) != PCIS_BRIDGE_PCI) + continue; if (((n->subvendor != 0xffff) && (n->subvendor != sv)) || ((n->subdevice != 0xffff) && (n->subdevice != sd))) continue;home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?698613a6.1a075.25bbf0ea>
