From: Steffen Dirkwinkel <me@steffen.cc>
To: Jason Gunthorpe <jgg@nvidia.com>, Jiri Slaby <jirislaby@kernel.org>
Cc: Vidya Sagar <vidyas@nvidia.com>,
corbet@lwn.net, bhelgaas@google.com, galshalom@nvidia.com,
leonro@nvidia.com, treding@nvidia.com, jonathanh@nvidia.com,
mmoshrefjava@nvidia.com, shahafs@nvidia.com, vsethi@nvidia.com,
sdonthineni@nvidia.com, jan@nvidia.com, tdave@nvidia.com,
linux-doc@vger.kernel.org, linux-pci@vger.kernel.org,
linux-kernel@vger.kernel.org, kthota@nvidia.com,
mmaddireddy@nvidia.com, sagar.tv@gmail.com,
vliaskovitis@suse.com
Subject: Re: [PATCH V4] PCI: Extend ACS configurability
Date: Mon, 07 Oct 2024 18:36:03 +0200 [thread overview]
Message-ID: <1224f317cb45fcc5117a7d8dbd19142b0916559a.camel@dirkwinkel.cc> (raw)
In-Reply-To: <20241001193300.GJ1365916@nvidia.com>
On Tue, 2024-10-01 at 16:33 -0300, Jason Gunthorpe wrote:
> On Wed, Sep 25, 2024 at 07:49:59AM +0200, Jiri Slaby wrote:
> > On 25. 09. 24, 7:29, Jiri Slaby wrote:
> > > On 25. 09. 24, 7:06, Jiri Slaby wrote:
> > > > > @@ -1047,23 +1066,33 @@ static void pci_std_enable_acs(struct
> > > > > pci_dev *dev)
> > > > > */
> > > > > static void pci_enable_acs(struct pci_dev *dev)
> > > > > {
> > > > > - if (!pci_acs_enable)
> > > > > - goto disable_acs_redir;
> > > > > + struct pci_acs caps;
> > > > > + int pos;
> > > > > +
> > > > > + pos = dev->acs_cap;
> > > > > + if (!pos)
> > > > > + return;
> >
> > Ignore the previous post.
> >
> > The bridge has no ACS (see lspci below). So it used to be enabled
> > by
> > pci_quirk_enable_intel_pch_acs() by another registers.
>
> Er, Ok, so it overrides the whole thing with
> pci_dev_specific_acs_enabled() too..
>
> > I am not sure how to fix this as we cannot have "caps" from these
> > quirks, so
> > that whole idea of __pci_config_acs() is nonworking for these
> > quirks.
>
> We just need to allow the quirk to run before we try to do anything
> with the cap, which has probably always been a NOP anyhow.
>
> Maybe like this?
>
> diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
> index 7d85c04fbba2ae..225a6cd2e9ca3b 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.
Hi,
I just ran into this issue (fewer iommu groups starting with 6.11).
Both reverting the original patch or applying your suggestion worked
for me.
Thanks
Steffen
next prev parent reply other threads:[~2024-10-07 16:36 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-21 11:09 [PATCH V2] PCI: Extend ACS configurability Vidya Sagar
2024-05-21 15:44 ` kernel test robot
2024-05-23 6:35 ` [PATCH V3] " Vidya Sagar
2024-05-23 14:59 ` Bjorn Helgaas
2024-05-23 15:16 ` Jason Gunthorpe
2024-06-03 7:50 ` Vidya Sagar
2024-06-07 19:30 ` Bjorn Helgaas
2024-06-10 11:38 ` Jason Gunthorpe
2024-06-12 21:29 ` Bjorn Helgaas
2024-06-12 23:23 ` Jason Gunthorpe
2024-06-13 22:05 ` Bjorn Helgaas
2024-06-13 23:36 ` Jason Gunthorpe
2024-06-13 22:38 ` Alex Williamson
2024-06-12 12:19 ` Jason Gunthorpe
2024-06-25 15:31 ` [PATCH V4] " Vidya Sagar
2024-06-25 16:26 ` Lukas Wunner
2024-06-25 16:39 ` Jason Gunthorpe
2024-06-26 6:02 ` Leon Romanovsky
2024-06-26 7:40 ` Tian, Kevin
2024-06-26 11:50 ` Jason Gunthorpe
2024-07-08 14:39 ` Jason Gunthorpe
2024-07-12 21:57 ` Bjorn Helgaas
2024-09-25 5:06 ` Jiri Slaby
2024-09-25 5:29 ` Jiri Slaby
2024-09-25 5:49 ` Jiri Slaby
2024-10-01 19:33 ` Jason Gunthorpe
2024-10-07 16:36 ` Steffen Dirkwinkel [this message]
2024-10-07 20:43 ` Bjorn Helgaas
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=1224f317cb45fcc5117a7d8dbd19142b0916559a.camel@dirkwinkel.cc \
--to=me@steffen.cc \
--cc=bhelgaas@google.com \
--cc=corbet@lwn.net \
--cc=galshalom@nvidia.com \
--cc=jan@nvidia.com \
--cc=jgg@nvidia.com \
--cc=jirislaby@kernel.org \
--cc=jonathanh@nvidia.com \
--cc=kthota@nvidia.com \
--cc=leonro@nvidia.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=mmaddireddy@nvidia.com \
--cc=mmoshrefjava@nvidia.com \
--cc=sagar.tv@gmail.com \
--cc=sdonthineni@nvidia.com \
--cc=shahafs@nvidia.com \
--cc=tdave@nvidia.com \
--cc=treding@nvidia.com \
--cc=vidyas@nvidia.com \
--cc=vliaskovitis@suse.com \
--cc=vsethi@nvidia.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).