From nobody Sat Sep 12 21:58:42 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 4hj5031Wwcz6r40j for ; Sat, 12 Sep 2026 21:58:43 +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 "YR2" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hj50270Jcz4MLs for ; Sat, 12 Sep 2026 21:58:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1789250323; 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=F3Amcrn6BKAHpXmaI0cpV9YxWAglQdWw7i57mn8QB8I=; b=nqV9+QUpHhBJXyQC58V1GvaOGJCNCQjhtCUAoZ1sBxLBAPM5uwPbO87EejuCjshr9eaIk7 Y/LlOoPA256KiGF+4TSMnWZJsRBbpMzQfGiO2yLXSXTjg0sm3JN6c/5fGG0Z0/L13DxO4c SEcC4X1iTA/2+I1uG9sR4t6BAoqNUEiz7opn3pHpG6O+cmTfCdYMbyNkAyz7ophsgqyXaJ NPzg0mA7URA33izAWhbYe7fY20K+0zVyPggQc/fmjaWaGi6W0WrFg2EqjsHCj0CR8IOa/W 24NUUZwkKL+lSRqh4Cs5nNJl+5aGCtEX5iMJhQCIPRgMKKaom2S7eW+xdMdMTw== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1789250323; b=rEw7re9ej5PpahknUeVWy34Zsvn+qDVLoOEOJRXgYL2MMx0ZiqZWrd9Bcnq/HfPJwnUYkt 5LPrJ8v0RgRtrb0Ny+VH0dE37lHI6tm/juc8jJNy6JQc5ZHW9D6+b3gNcZbS0S9h3Gm7NF tcVLjknBP9Y7osSHQYb8NFvfm6SgGyiRHux4Bg9WwwzKXTkuG84H0ZbvufnjD6nxDQ9S0E 7G7c11ITlKyQxRZ1KCkoHv1b5jbYTOD/fkCfiJwC8tXLKzudDSIDSGkYmnqPZKi3ykpSy/ Bw2tUxyrahr2UsU+lr68D1EshUHSi01XN93t+Oe3EfrwWo/iWhns9jiDivO6YQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1789250323; 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=F3Amcrn6BKAHpXmaI0cpV9YxWAglQdWw7i57mn8QB8I=; b=mvqT0FnECyrViB0dipT+0aL1QfRi2T0gA93hNk9oGvmWhTa0/Mr4VkABevO68cWkufTSw+ UEqXP96sEz3z4Rtv42ijz9yFzl/zzbCTZ0TOhEZRHWUjiehyLwLZbdeRFSa+dLdYArC2// L4rmZP8oIJSxoH9i0JY7kkWCFKDNPyGX2heOsWoz+7mSF4d4GnXH6vMXp/+6GHVq5+ZcP7 F7HNLTIfm9d3GqVBX+ulxIMLAWvByz66Lghwv5opzrkqEdQ+onXJHrcFkVRIiU4dGybEAq HwnZ4zhEhWZ6Q61l+bhs5/XbZqjsmFYjZa5jYGtc/Bc615/kt73lFltvV0roAA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hj50264LDzFKl for ; Sat, 12 Sep 2026 21:58:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 32a66 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 12 Sep 2026 21:58:42 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Nick Price Subject: git: 82281715ef2f - main - puc: be more careful about using MSI 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: nprice X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 82281715ef2f08f873a19340c3d00ef7fa9bf728 Auto-Submitted: auto-generated Date: Sat, 12 Sep 2026 21:58:42 +0000 Message-Id: <6aa5cb12.32a66.6454c302@gitrepo.freebsd.org> The branch main has been updated by nprice: URL: https://cgit.FreeBSD.org/src/commit/?id=82281715ef2f08f873a19340c3d00ef7fa9bf728 commit 82281715ef2f08f873a19340c3d00ef7fa9bf728 Author: Nick Price AuthorDate: 2026-09-12 21:58:10 +0000 Commit: Nick Price CommitDate: 2026-09-12 21:58:16 +0000 puc: be more careful about using MSI puc has preferred MSI for every card since MSI support was added, with only a global tunable to opt out. uart(4) makes the same decision for the serial devices it attaches directly, and has since grown two defences: it skips MSI unless the device advertises exactly one vector, because attaching a single instance to a device offering many has caused problems (PR 235016), and it lets individual devices be flagged when they claim MSI support that does not work. Adopt both. Approved by: adrian (mentor) Reviewed by: adrian Differential Revision: https://reviews.freebsd.org/D59623 Signed-off-by: Nick Price --- sys/dev/puc/puc_cfg.h | 4 ++++ sys/dev/puc/puc_pci.c | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/sys/dev/puc/puc_cfg.h b/sys/dev/puc/puc_cfg.h index 962ab86fe6d3..7c6aa74a427a 100644 --- a/sys/dev/puc/puc_cfg.h +++ b/sys/dev/puc/puc_cfg.h @@ -52,6 +52,9 @@ #define PUC_ILR_DIGI 1 #define PUC_ILR_QUATECH 2 +/* Configuration flags. */ +#define PUC_FLAGS_NO_MSI 0x01 + /* Configuration queries. */ enum puc_cfg_cmd { PUC_CFG_GET_CLOCK, @@ -80,6 +83,7 @@ struct puc_cfg { int8_t rid; /* Rid of first port */ int8_t d_rid; /* Delta rid of next ports */ int8_t d_ofs; /* Delta offset of next ports */ + uint8_t flags; /* PUC_FLAGS_* */ puc_config_f *config_function; }; diff --git a/sys/dev/puc/puc_pci.c b/sys/dev/puc/puc_pci.c index 9709a606fb44..a15b6f643fb2 100644 --- a/sys/dev/puc/puc_pci.c +++ b/sys/dev/puc/puc_pci.c @@ -133,7 +133,9 @@ puc_pci_attach(device_t dev) sc = device_get_softc(dev); - if (!puc_msi_disable) { + if (!puc_msi_disable && + (sc->sc_cfg->flags & PUC_FLAGS_NO_MSI) == 0 && + pci_msi_count(dev) == 1) { count = 1; if (pci_alloc_msi(dev, &count) == 0) {