On Wed, Oct 23, 2019 at 7:37 PM Keith Busch <kbusch@xxxxxxxxxx> wrote: > > On Wed, Oct 23, 2019 at 12:22:05PM -0700, Olof Johansson wrote: > > In commit eed85ff4c0da7 ("PCI/DPC: Enable DPC only if AER is available"), > > the behavior was changed such that native (kernel) handling of DPC > > got tied to whether the kernel also handled AER. While this is what > > the standard recommends, there are BIOSes out there that lack the DPC > > handling since it was never required in the past. > > > > To make DPC still work on said platforms the same way they did before, > > add a "pcie_ports=dpc-native" kernel parameter that can be passed in > > if needed, while keeping defaults unchanged. > > If platform firmware wants to handle AER events, but the kernel enables > the DPC capability, the ports will be trapping events that firmware is > expecting to handle. Not that that's a bad thing: firmware is generally > worse at handling these errors. Right, and in particular (and what I'm looking for here): It brings back the older behavior that some platforms rely on. :-/ > > +/* > > + * If the user specified "pcie_ports=dpc-native", use the PCIe services > > + * for DPC, but cuse platform defaults for the others. > > s/cuse/use Thanks > > @@ -1534,9 +1534,11 @@ static inline int pci_irqd_intx_xlate(struct irq_domain *d, > > #ifdef CONFIG_PCIEPORTBUS > > extern bool pcie_ports_disabled; > > extern bool pcie_ports_native; > > +extern bool pcie_ports_dpc_native; > > #else > > #define pcie_ports_disabled true > > #define pcie_ports_native false > > +#define pcie_ports_dpc_native false > > #endif > > You do not have any references to pcie_ports_dpc_native outside of files that > require CONFIG_PCIEPORTBUS, so no need to define a default. If these are the only comments, maybe Bjorn can fixup when applying. Bjorn; let me know if you prefer that or if you want a fresh version. Either is fine with me. -Olof