summaryrefslogtreecommitdiffstats
path: root/drivers/pcmcia
diff options
context:
space:
mode:
authorRafael J. Wysocki <rjw@sisk.pl>2012-04-16 23:07:50 +0200
committerLinus Torvalds <torvalds@linux-foundation.org>2012-04-16 18:33:35 -0700
commita6cb9ee7cabe68002c3f2ab07224ea27d2617cf1 (patch)
treefb3fc13b4b58e010b1b08c1ae89df810382063dc /drivers/pcmcia
parent5191d566c023079fa283adc48b71854e9d74ffd5 (diff)
downloadlinux-a6cb9ee7cabe68002c3f2ab07224ea27d2617cf1.tar.gz
linux-a6cb9ee7cabe68002c3f2ab07224ea27d2617cf1.tar.bz2
linux-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 <mmvinni@yahoo.com> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/pcmcia')
0 files changed, 0 insertions, 0 deletions