Re: [PATCH v2 3/4] PCI: Disable ACS SV capability for the broken IDT switches

From: Jason Gunthorpe
Date: Wed Dec 17 2025 - 10:41:16 EST


On Tue, Dec 09, 2025 at 08:20:39PM +0900, Manivannan Sadhasivam wrote:
> On Tue, Dec 02, 2025 at 03:15:33PM -0400, Jason Gunthorpe wrote:
> > On Tue, Dec 02, 2025 at 07:52:50PM +0530, Manivannan Sadhasivam wrote:
> > > @@ -544,6 +544,7 @@ struct pci_dev {
> > > #endif
> > > u16 acs_cap; /* ACS Capability offset */
> > > u16 acs_capabilities; /* ACS Capabilities */
> > > + u16 acs_broken_cap; /* Broken ACS Capabilities */
> >
> > Why do we need this? Have the quirk function accep tthe
> > acs_capabilities from the register and return the value to program
> > into struct pci_dev ?
> >
>
> We dont have any quirk levels between pci_acs_init() and pci_acs_enable() that
> will allow us to modify pci_dev::acs_capabilities in the quirk function. Hence,
> I came up with one more member to pass the broken caps.

Call the quirk function directly from the ACS path? We have things
like that already for ACS?

Jason