]> git.ipfire.org Git - thirdparty/linux.git/commit
PCI: aardvark: Correct Configuration RRS checking
authorBjorn Helgaas <bhelgaas@google.com>
Tue, 27 Aug 2024 23:48:47 +0000 (18:48 -0500)
committerBjorn Helgaas <bhelgaas@google.com>
Wed, 11 Sep 2024 00:52:30 +0000 (19:52 -0500)
commitdd4e47eab886abf28859ccf8aad373983015f89e
tree2204782cba7dfa96b240ba6bff70c6363c14cdd7
parentd591f6804e7e1310881c9224d72247a2b65039af
PCI: aardvark: Correct Configuration RRS checking

Per PCIe r6.0, sec 2.3.2, when a Root Complex handles a Completion with
Request Retry Status for a Configuration Read Request that includes both
bytes of the Vendor ID field, it must complete the Request to the host by
returning 0001h for the Vendor ID and all 1's for any additional bytes.

Previously we only returned the 0001h Vendor ID value if we got an RRS
completion for reads of exactly 4 bytes.  A read of 2 bytes would not
qualify, although the spec says it should.

Check for reads of 2 or more bytes including the Vendor ID.

I don't think this will fix any observable problems because RRS only
applies to the first config reads after reset, and those are all currently
dword (4-byte) reads.

Link: https://lore.kernel.org/r/20240827234848.4429-3-helgaas@kernel.org
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
drivers/pci/controller/pci-aardvark.c