[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <aYGsmgyVwvbj83YI@wunner.de>
Date: Tue, 3 Feb 2026 09:06:50 +0100
From: Lukas Wunner <lukas@...ner.de>
To: Shuai Xue <xueshuai@...ux.alibaba.com>
Cc: linux-pci@...r.kernel.org, linux-kernel@...r.kernel.org,
linuxppc-dev@...ts.ozlabs.org, bhelgaas@...gle.com,
kbusch@...nel.org, sathyanarayanan.kuppuswamy@...ux.intel.com,
mahesh@...ux.ibm.com, oohall@...il.com, Jonathan.Cameron@...wei.com,
terry.bowman@....com, tianruidong@...ux.alibaba.com
Subject: Re: [PATCH v7 4/5] PCI/AER: Clear both AER fatal and non-fatal status
On Sat, Jan 24, 2026 at 03:45:56PM +0800, Shuai Xue wrote:
> The DPC driver clears AER fatal status for the port that reported the
> error, but not for the downstream device that deteced the error. The
> current recovery code only clears non-fatal AER status, leaving fatal
> status bits set in the error device.
That's not quite accurate:
The error device has undergone a Hot Reset as a result of the Link Down
event. To be able to use it again, pci_restore_state() is invoked by
the driver's ->slot_reset() callback. And pci_restore_state() does
clear fatal status bits.
pci_restore_state()
pci_aer_clear_status()
pci_aer_raw_clear_status()
> Use pci_aer_raw_clear_status() to clear both fatal and non-fatal error
> status in the error device, ensuring all AER status bits are properly
> cleared after recovery.
Well, pci_restore_state() already clears all AER status bits so why
is this patch necessary?
> +++ b/drivers/pci/pcie/err.c
> @@ -285,7 +285,7 @@ pci_ers_result_t pcie_do_recovery(struct pci_dev *dev,
> */
> if (host->native_aer || pcie_ports_native) {
> pcie_clear_device_status(dev);
> - pci_aer_clear_nonfatal_status(dev);
> + pci_aer_raw_clear_status(dev);
> }
This code path is for the case when pcie_do_recovery() is called
with state=pci_channel_io_normal, i.e. in the nonfatal case.
That's why only the nonfatal bits need to be cleared here.
In the fatal case clearing of the error bits is done by
pci_restore_state().
I understand that this is subtle and should probably be changed
to improve clarity, but this patch doesn't look like a step
in that direction.
Thanks,
Lukas
Powered by blists - more mailing lists