Re: [PATCH 16/22] PCI: pciehp: Use RESPONSE_IS_PCI_ERROR() to check read from hardware
From: Lukas Wunner <lukas@wunner.de>
Date: 2021-10-13 12:25:36
Also in:
linux-pci, lkml
From: Lukas Wunner <lukas@wunner.de>
Date: 2021-10-13 12:25:36
Also in:
linux-pci, lkml
On Wed, Oct 13, 2021 at 01:12:01AM +0200, Pali Rohár wrote:
quoted
On 11/10, Lukas Wunner wrote:quoted
On Mon, Oct 11, 2021 at 11:37:33PM +0530, Naveen Naidu wrote:quoted
An MMIO read from a PCI device that doesn't exist or doesn't respond causes a PCI error. There's no real data to return to satisfy the CPU read, so most hardware fabricates ~0 data. Use RESPONSE_IS_PCI_ERROR() to check the response we get when we read data from hardware.Actually what happens is that PCI read transactions *time out*, so the host controller fabricates a response.This is not fully correct. 0xffffffff is returned when some error happens. It does not have to be timeout error. Errors like Unsupported Request, Completer Abort or Configuration Request Retry Status (when CRSSVE bit is disabled) are also reported as 0xffffffff and they do not represent timeout. For example Unsupported Request is returned when you try to read from non-existent device behind some PCIe switch.
This particular patch concerns pciehp and in that context, "all ones" responses are predominantly timeouts caused by hot-removed devices. Thanks, Lukas _______________________________________________ Linux-kernel-mentees mailing list Linux-kernel-mentees@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees