On Wednesday 18 February 2009, Zhao, Yu wrote: > Rafael J. Wysocki wrote: > > On Monday 16 February 2009, Yu Zhao wrote: > >> The device state is restored twice by the PCI PM and device driver itself. > >> Before removing the pci_restore_state() from the device driver, we'd better > >> check the `state_saved' to avoid the second restore. > > > > This patch will break things (like anything behind a cardbus bridge). > > Does it fix any observable problem? > > Can you please explain how it breaks cardbus device? Not a cardbus device itself, but devices behind a cardbus bridge. Please have a look at the changelog of http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3494252d5644993f407a45f01c3e8ad5ae38f93c > Through the pci_restore_state gets called twice when device resumes, I > didn't see any observable problem. I wouldn't change that, then. The entire suspend sequence is going to be reqorked shortly and we'll take care of it at that time. > >> Signed-off-by: Yu Zhao <yu.zhao@xxxxxxxxx> > >> --- > >> drivers/pci/pci.c | 3 +++ > >> 1 files changed, 3 insertions(+), 0 deletions(-) > >> > >> diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c > >> index 9376763..2b11810 100644 > >> --- a/drivers/pci/pci.c > >> +++ b/drivers/pci/pci.c > >> @@ -762,6 +762,9 @@ pci_restore_state(struct pci_dev *dev) > >> int i; > >> u32 val; > >> > >> + if (!dev->state_saved) > >> + return 0; > >> + > >> /* PCI Express register must be restored first */ > >> pci_restore_pcie_state(dev); Thanks, Rafael -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html