diff options
| author | Rafael J. Wysocki <[email protected]> | 2012-04-16 21:07:50 +0000 |
|---|---|---|
| committer | Linus Torvalds <[email protected]> | 2012-04-17 01:33:35 +0000 |
| commit | a6cb9ee7cabe68002c3f2ab07224ea27d2617cf1 (patch) | |
| tree | fb3fc13b4b58e010b1b08c1ae89df810382063dc /lib/mpi/mpi-bit.c | |
| parent | Documentation: maintainer change (diff) | |
| download | kernel-a6cb9ee7cabe68002c3f2ab07224ea27d2617cf1.tar.gz kernel-a6cb9ee7cabe68002c3f2ab07224ea27d2617cf1.zip | |
PCI: Retry BARs restoration for Type 0 headers only
Some shortcomings introduced into pci_restore_state() by commit
26f41062f28d ("PCI: check for pci bar restore completion and retry")
have been fixed by recent commit ebfc5b802fa76 ("PCI: Fix regression in
pci_restore_state(), v3"), but that commit treats all PCI devices as
those with Type 0 configuration headers.
That is not entirely correct, because Type 1 and Type 2 headers have
different layouts. In particular, the area occupied by BARs in Type 0
config headers contains the secondary status register in Type 1 ones and
it doesn't make sense to retry the restoration of that register even if
the value read back from it after a write is not the same as the written
one (it very well may be different).
For this reason, make pci_restore_state() only retry the restoration
of BARs for Type 0 config headers. This effectively makes it behave
as before commit 26f41062f28d for all header types except for Type 0.
Tested-by: Mikko Vinni <[email protected]>
Signed-off-by: Rafael J. Wysocki <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'lib/mpi/mpi-bit.c')
0 files changed, 0 insertions, 0 deletions
