From: Greg Kroah-Hartman Date: Mon, 18 Nov 2013 16:50:11 +0000 (-0800) Subject: 3.4-stable patches X-Git-Tag: v3.4.70~8 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3dfd743aa76bb261cb50653ba91751faabd03648;p=thirdparty%2Fkernel%2Fstable-queue.git 3.4-stable patches added patches: pci-pm-clear-state_saved-during-suspend.patch --- diff --git a/queue-3.4/pci-pm-clear-state_saved-during-suspend.patch b/queue-3.4/pci-pm-clear-state_saved-during-suspend.patch new file mode 100644 index 00000000000..8041f61bf36 --- /dev/null +++ b/queue-3.4/pci-pm-clear-state_saved-during-suspend.patch @@ -0,0 +1,57 @@ +From 82fee4d67ab86d6fe5eb0f9a9e988ca9d654d765 Mon Sep 17 00:00:00 2001 +From: "Rafael J. Wysocki" +Date: Mon, 4 Feb 2013 15:56:05 +0400 +Subject: PCI/PM: Clear state_saved during suspend + +From: "Rafael J. Wysocki" + +commit 82fee4d67ab86d6fe5eb0f9a9e988ca9d654d765 upstream. + +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. + +[wangyj: adjust context] +Signed-off-by: Konstantin Khlebnikov # add comment +Signed-off-by: Bjorn Helgaas +Signed-off-by: Yijing Wang +Signed-off-by: Greg Kroah-Hartman +--- + drivers/pci/pci-driver.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/drivers/pci/pci-driver.c ++++ b/drivers/pci/pci-driver.c +@@ -680,6 +680,7 @@ static int pci_pm_suspend(struct device + goto Fixup; + } + ++ pci_dev->state_saved = false; + if (pm->suspend) { + pci_power_t prev = pci_dev->current_state; + int error; +@@ -826,6 +827,7 @@ static int pci_pm_freeze(struct device * + return 0; + } + ++ pci_dev->state_saved = false; + if (pm->freeze) { + int error; + +@@ -914,6 +916,7 @@ static int pci_pm_poweroff(struct device + goto Fixup; + } + ++ pci_dev->state_saved = false; + if (pm->poweroff) { + int error; + +@@ -1032,6 +1035,7 @@ static int pci_pm_runtime_suspend(struct + if (!pm || !pm->runtime_suspend) + return -ENOSYS; + ++ pci_dev->state_saved = false; + error = pm->runtime_suspend(dev); + suspend_report_result(pm->runtime_suspend, error); + if (error) diff --git a/queue-3.4/series b/queue-3.4/series index 7f8f73c63d9..e5391e35877 100644 --- a/queue-3.4/series +++ b/queue-3.4/series @@ -8,3 +8,4 @@ netfilter-nf_ct_sip-don-t-drop-packets-with-offsets-pointing-outside-the-packet. tracing-fix-potential-out-of-bounds-in-trace_get_user.patch arm-7668-1-fix-memset-related-crashes-caused-by-recent-gcc-4.7.2-optimizations.patch arm-7670-1-fix-the-memset-fix.patch +pci-pm-clear-state_saved-during-suspend.patch