Comments

On Monday, April 16, 2012, Linus Torvalds wrote:
> On Mon, Apr 16, 2012 at 1:35 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:> > From: Rafael J. Wysocki <rjw@sisk.pl>> >> > 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.> > Make me happier and just make all of this a helper function again.> Call that helper function pci_restore_config_space(), and make the> existing "pci_restore_config_space()" be called> "pci_restore_config_space_range()" or something. Ok?
Something like this, you mean?
---
From: Rafael J. Wysocki <rjw@sisk.pl>
Subject: 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>
---
drivers/pci/pci.c | 24 +++++++++++++++---------
1 file changed, 15 insertions(+), 9 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html