]> git.baikalelectronics.ru Git - kernel.git/commit
PCI: Always check for non-CRS response before timeout
authorBjorn Helgaas <bhelgaas@google.com>
Tue, 29 Aug 2017 19:45:43 +0000 (14:45 -0500)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 29 Aug 2017 19:45:43 +0000 (14:45 -0500)
commit9ddc5c5bb148b48ad95d6ff95a8a7535f4136ae4
treee692b90db32c107aab9e3801c71ef4b3d4a539d4
parent17f288549050cedadd15c6b21d4097cd85ca9c4a
PCI: Always check for non-CRS response before timeout

While waiting for a device to become ready (i.e., to return a non-CRS
completion to a read of its Vendor ID), if we got a valid response to the
very last read before timing out, we printed a warning and gave up on the
device even though it was actually ready.

For a typical 60s timeout, we wait about 65s (it's not exact because of the
exponential backoff), but we treated devices that became ready between 33s
and 65s as though they failed.

Move the Device ID read later so we check whether the device is ready
before checking for a timeout.

Thanks to Sinan Kaya <okaya@codeaurora.org>, reorder reads so we always
check device presence after sleep, since it's pointless to sleep unless we
recheck afterwards.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
drivers/pci/probe.c