Commit 82fee4d6 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki Committed by Bjorn Helgaas
Browse files

PCI/PM: Clear state_saved during suspend



This patch clears pci_dev->state_saved at the beginning of suspending.
PCI config state may be saved long before that.  Some drivers call
pci_save_state() from the ->probe() callback to get snapshot of sane
configuration space to use in the ->slot_reset() callback.

Signed-off-by: Konstantin Khlebnikov <khlebnikov@openvz.org> # add comment
Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
parent cc7ba39b
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -628,6 +628,7 @@ static int pci_pm_suspend(struct device *dev)
		goto Fixup;
	}

	pci_dev->state_saved = false;
	if (pm->suspend) {
		pci_power_t prev = pci_dev->current_state;
		int error;
@@ -774,6 +775,7 @@ static int pci_pm_freeze(struct device *dev)
		return 0;
	}

	pci_dev->state_saved = false;
	if (pm->freeze) {
		int error;

@@ -862,6 +864,7 @@ static int pci_pm_poweroff(struct device *dev)
		goto Fixup;
	}

	pci_dev->state_saved = false;
	if (pm->poweroff) {
		int error;

@@ -987,6 +990,7 @@ static int pci_pm_runtime_suspend(struct device *dev)
	if (!pm || !pm->runtime_suspend)
		return -ENOSYS;

	pci_dev->state_saved = false;
	pci_dev->no_d3cold = false;
	error = pm->runtime_suspend(dev);
	suspend_report_result(pm->runtime_suspend, error);