From nobody Mon Jul 27 00:10:31 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 4h7fBJ1bKHz6m9G9 for ; Mon, 27 Jul 2026 00:10:32 +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 4h7fBH5ld9z43by for ; Mon, 27 Jul 2026 00:10:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1785111031; 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=rsKTjg0z2gCTVKo9kFj3Q6UanHBGj2+GJAtEL3t70CQ=; b=vOlGltwzC3rGNlwwJ1OkQ8p6/yfEn99UMvwp5e90zDJUZw/MmHQ7IDDZG3EKv02w22I34A TdZkLfqd/jw531BaoXn8iJTCC0XfwFGKKvq8U7b8a05qcJ2jpODYAkPcQg9uodAyqrLWNO DvOKLAftPYN4Z+aARB1Ha7JQ46L5Pm+HI3OlFVKRcQVO0snZhMToob3sZzrtWslH/jm11O qTU2iDofQ5d3cLdxODcDncd5XAyvP8O+Ce1dK+4CBsl3/sNbXvW4m40cbvxy81seZaUiBy Vf+weUy9BI9rd4dOB1eBB109t1K4ukH56cpfoEmsjHwBj2SMIjvYTVJQ7QpGkA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1785111031; a=rsa-sha256; cv=none; b=B9JGeWTyaH+G2detfA4ttdicaVZL9rJdmoIpUMTWYocimssUnORV308sjtOHgWCajIf9G8 vicBEplSliX7H60XvHvXZspaMCysFK2cG3QgJJadcanDfRvBNGHfzsoVvccSl3PMJLF0ON FL5QXQVrroYP9jvrwb5lZP91JqIF5cOp3+At57eXX4B1oypFfqfr4DS+LKQpQddKh3/xCk Gr1qq1q4OxyyT0362xCIsZ7GpJSbabOWC3wI7Bv6CySNyHbZx2SWWqfkJ6Ri6h/AbOH6Xo c1OTuab+rS8xSWvnzjzCxQiBxsUoX7DE+2MswvgaqVZhITeMw7upJzjnqKWUUw== 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=1785111031; 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=rsKTjg0z2gCTVKo9kFj3Q6UanHBGj2+GJAtEL3t70CQ=; b=hUHrJUXrznNzIYPKtruVYgsj0uXkyPP0GHtlsFHc1YHqjEFAH2WzOiU68ol59Az84OkNkh 2l6t3vGX/1P19N+xvwHWRrTGWOjRJ2zGFKn1K8H1asKXSryTfnVEuo/RglcNsmkSEht4qJ Xt4XYPto7UCnEaRLUMLLykP8g884jflLy7zdriJKcsT/RDJ3YEiws02L/JTaLMCdw6Boz/ wYiwcZnTGB7ThoqriiirQdej2D50dPow217TZnqgv2x43GREKPCuf+oIV9BHjvyQuCDwRs BOR/sdTgiCb9Em4FAYGUWYBmcYC6sJ9Tq0xjQMjijFHV0IsVPfHSI1KFB4h7rg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4h7fBH4ZbfzlMK for ; Mon, 27 Jul 2026 00:10:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 274f5 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 27 Jul 2026 00:10:31 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 38734f88a643 - stable/15 - LinuxKPI: fix lkpi_pci_get_device() reference counting on device 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: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 38734f88a643b139f4d7ecbb53a590db9d678e58 Auto-Submitted: auto-generated Date: Mon, 27 Jul 2026 00:10:31 +0000 Message-Id: <6a66a1f7.274f5.76e1f399@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=38734f88a643b139f4d7ecbb53a590db9d678e58 commit 38734f88a643b139f4d7ecbb53a590db9d678e58 Author: Bjoern A. Zeeb AuthorDate: 2026-06-01 04:58:00 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-07-26 16:47:43 +0000 LinuxKPI: fix lkpi_pci_get_device() reference counting on device In case we are passed an "odev" (a device to start the search from), that device would have an extra reference. The best way to illustrate this is to look at for_each_pci_dev(), which will return one device after the other. Upon first return we return a pdev with a reference. That pdev is then passed in as odev on the next call. If we do not clear the reference it will be leaked. Sponsored by: The FreeBSD Foundation Fixes: 910cf345d0ee9 ("LinuxKPI: pci: implement ...") Reviewed by: dumbbell, emaste Differential Revision: https://reviews.freebsd.org/D57428 (cherry picked from commit f9a37065b6948831f62a33fd0c68c96985b01a41) --- sys/compat/linuxkpi/common/src/linux_pci.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/compat/linuxkpi/common/src/linux_pci.c b/sys/compat/linuxkpi/common/src/linux_pci.c index c4f0564c7e35..34ce260bc89d 100644 --- a/sys/compat/linuxkpi/common/src/linux_pci.c +++ b/sys/compat/linuxkpi/common/src/linux_pci.c @@ -308,8 +308,9 @@ linux_pci_find(device_t dev, const struct pci_device_id **idp) struct pci_dev * lkpi_pci_get_device(uint32_t vendor, uint32_t device, struct pci_dev *odev) { - struct pci_dev *pdev, *found; + struct pci_dev *pdev, *found, *odev0; + odev0 = odev; found = NULL; spin_lock(&pci_lock); list_for_each_entry(pdev, &pci_devices, links) { @@ -328,6 +329,7 @@ lkpi_pci_get_device(uint32_t vendor, uint32_t device, struct pci_dev *odev) } pci_dev_get(found); spin_unlock(&pci_lock); + pci_dev_put(odev0); return (found); }