diff options
| author | Alexander Gruhlke <gruhlke@mailbox.org> | 2026-10-11 21:01:45 +0200 |
|---|---|---|
| committer | Bjorn Helgaas <bhelgaas@google.com> | 2026-10-16 12:11:15 -0500 |
| commit | e8df1d194c39b7a5159d570798941851f70a8668 (patch) | |
| tree | e20c3ff3e6059261a83185c4050dba0f633e1c02 /scripts/basic/split-include.c | |
| parent | 0f8b5d90d179b9639be1dbeff59d6d971e6b0527 (diff) | |
| download | linux-e8df1d194c39b7a5159d570798941851f70a8668.tar.gz linux-e8df1d194c39b7a5159d570798941851f70a8668.zip | |
PCI: Don't treat ~0 as ready in pci_dev_wait() with RRS SV
With RRS Software Visibility, pci_dev_wait() considers a device ready as
soon as reading the Vendor ID doesn't return the RRS value. Devices aren't
required to respond with RRS while they aren't ready, so the read may
return ~0 and pci_dev_wait() stops waiting too early. This was seen with
Intel [8086:0a54] and Samsung [144d:a80c] NVMe SSDs.
Also wait while the Vendor ID reads ~0. A VF's Vendor ID always reads ~0,
so check its Command register instead, as is done without RRS SV.
Fixes: d591f6804e7e ("PCI: Wait for device readiness with Configuration RRS")
Link: https://lore.kernel.org/r/20250611101442.387378-1-hui.wang@canonical.com
Suggested-by: Lukas Wunner <lukas@wunner.de>
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Alexander Gruhlke <gruhlke@mailbox.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Lukas Wunner <lukas@wunner.de>
Link: https://patch.msgid.link/20261011190145.23621-3-gruhlke@mailbox.org
Diffstat (limited to 'scripts/basic/split-include.c')
0 files changed, 0 insertions, 0 deletions
