Re: [PATCH v2 0/3] PCI/DPC: Clean up DPC vs AER/EDR ownership and Kconfig

Ethan Zhao
2024-02-27T06:18:09Z

On 2/23/2024 6:15 AM, Bjorn Helgaas wrote:
> From: Bjorn Helgaas <bhelgaas@google.com>
>
> Previously we could request control of DPC without AER, which is illegal
> per spec. Also, we could enable CONFIG_PCIE_DPC without CONFIG_PCIE_EDR,
> which is also illegal. This series addresses both.

I have a question here, how to understand the relationship EDR & AER ?
somewhere EDR touches AER status without checking _OSC granted bits,
such as
pci_aer_raw_clear_status(edev);

sometimes EDR calling AER with host->native_aer checked, like

pcie_do_recovery()
{
...
if (host->native_aer || pcie_ports_native) {
pcie_clear_device_status(dev);
pci_aer_clear_nonfatal_status(dev);
}
...
}

That is really confusing. could we do some cleanup to eliminate it ?
such as seperate AER code into common code and runtime part.

Thanks,
Ethan

>
> Bjorn Helgaas (3):
> PCI/DPC: Request DPC only if also requesting AER
> PCI/DPC: Remove CONFIG_PCIE_EDR
> PCI/DPC: Encapsulate pci_acpi_add_edr_notifier()
>
> drivers/acpi/pci_root.c | 22 ++++++++++++----------
> drivers/pci/pci.h | 4 ++++
> drivers/pci/pcie/Kconfig | 14 ++++----------
> drivers/pci/pcie/Makefile | 5 ++++-
> drivers/pci/pcie/dpc.c | 10 ----------
> include/linux/pci-acpi.h | 8 --------
> 6 files changed, 24 insertions(+), 39 deletions(-)
>