all lists on lists.proxmox.com
 help / color / mirror / Atom feed
From: Stoiko Ivanov <s.ivanov@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH pve-kernel/master 1/2] fix #5926: cherry-pick ACS-quirk fix from linux-stable/6.11.7
Date: Tue, 26 Nov 2024 17:36:35 +0100	[thread overview]
Message-ID: <20241126163636.825951-2-s.ivanov@proxmox.com> (raw)
In-Reply-To: <20241126163636.825951-1-s.ivanov@proxmox.com>

the latest linux-stable pull I found in ubuntu-oracular was for 6.11.5
- this fix here seems targeted enough. see also the discussion
upstream:
https://lore.kernel.org/all/20241029163317.GA216411@nvidia.com/

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
---
 ...nable_acs-support-for-the-ACS-quirks.patch | 68 +++++++++++++++++++
 1 file changed, 68 insertions(+)
 create mode 100644 patches/kernel/0016-PCI-Fix-pci_enable_acs-support-for-the-ACS-quirks.patch

diff --git a/patches/kernel/0016-PCI-Fix-pci_enable_acs-support-for-the-ACS-quirks.patch b/patches/kernel/0016-PCI-Fix-pci_enable_acs-support-for-the-ACS-quirks.patch
new file mode 100644
index 000000000000..81123616f983
--- /dev/null
+++ b/patches/kernel/0016-PCI-Fix-pci_enable_acs-support-for-the-ACS-quirks.patch
@@ -0,0 +1,68 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Jason Gunthorpe <jgg@nvidia.com>
+Date: Wed, 16 Oct 2024 20:52:33 -0300
+Subject: [PATCH] PCI: Fix pci_enable_acs() support for the ACS quirks
+
+[ Upstream commit f3c3ccc4fe49dbc560b01d16bebd1b116c46c2b4 ]
+
+There are ACS quirks that hijack the normal ACS processing and deliver to
+to special quirk code. The enable path needs to call
+pci_dev_specific_enable_acs() and then pci_dev_specific_acs_enabled() will
+report the hidden ACS state controlled by the quirk.
+
+The recent rework got this out of order and we should try to call
+pci_dev_specific_enable_acs() regardless of any actual ACS support in the
+device.
+
+As before command line parameters that effect standard PCI ACS don't
+interact with the quirk versions, including the new config_acs= option.
+
+Link: https://lore.kernel.org/r/0-v1-f96b686c625b+124-pci_acs_quirk_fix_jgg@nvidia.com
+Fixes: 47c8846a49ba ("PCI: Extend ACS configurability")
+Reported-by: Jiri Slaby <jirislaby@kernel.org>
+Closes: https://lore.kernel.org/all/e89107da-ac99-4d3a-9527-a4df9986e120@kernel.org
+Closes: https://bugzilla.suse.com/show_bug.cgi?id=1229019
+Tested-by: Steffen Dirkwinkel <me@steffen.cc>
+Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
+Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+(cherry picked from commit 8803132f857d1959f99c6ef98cf74776a52987e4)
+Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
+---
+ drivers/pci/pci.c | 14 +++++++++-----
+ 1 file changed, 9 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
+index ffaaca0978cbc..a89436d481f07 100644
+--- a/drivers/pci/pci.c
++++ b/drivers/pci/pci.c
+@@ -1067,8 +1067,15 @@ static void pci_std_enable_acs(struct pci_dev *dev, struct pci_acs *caps)
+ static void pci_enable_acs(struct pci_dev *dev)
+ {
+ 	struct pci_acs caps;
++	bool enable_acs = false;
+ 	int pos;
+ 
++	/* If an iommu is present we start with kernel default caps */
++	if (pci_acs_enable) {
++		if (pci_dev_specific_enable_acs(dev))
++			enable_acs = true;
++	}
++
+ 	pos = dev->acs_cap;
+ 	if (!pos)
+ 		return;
+@@ -1077,11 +1084,8 @@ static void pci_enable_acs(struct pci_dev *dev)
+ 	pci_read_config_word(dev, pos + PCI_ACS_CTRL, &caps.ctrl);
+ 	caps.fw_ctrl = caps.ctrl;
+ 
+-	/* If an iommu is present we start with kernel default caps */
+-	if (pci_acs_enable) {
+-		if (pci_dev_specific_enable_acs(dev))
+-			pci_std_enable_acs(dev, &caps);
+-	}
++	if (enable_acs)
++		pci_std_enable_acs(dev, &caps);
+ 
+ 	/*
+ 	 * Always apply caps from the command line, even if there is no iommu.
-- 
2.39.5



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


  reply	other threads:[~2024-11-26 16:37 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-11-26 16:36 [pve-devel] [PATCH pve-kernel/master 0/2] fix two small issues with IOMMU in certain setups Stoiko Ivanov
2024-11-26 16:36 ` Stoiko Ivanov [this message]
2024-11-26 16:36 ` [pve-devel] [PATCH pve-kernel/master 2/2] revert Ubuntu patch disabling IOMMU functionality for Skylake iGPU Stoiko Ivanov
2024-11-27 19:24 ` [pve-devel] applied: [PATCH pve-kernel/master 0/2] fix two small issues with IOMMU in certain setups Thomas Lamprecht

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20241126163636.825951-2-s.ivanov@proxmox.com \
    --to=s.ivanov@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal