]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 18 Nov 2013 16:50:11 +0000 (08:50 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 18 Nov 2013 16:50:11 +0000 (08:50 -0800)
added patches:
pci-pm-clear-state_saved-during-suspend.patch

queue-3.4/pci-pm-clear-state_saved-during-suspend.patch [new file with mode: 0644]
queue-3.4/series

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 (file)
index 0000000..8041f61
--- /dev/null
@@ -0,0 +1,57 @@
+From 82fee4d67ab86d6fe5eb0f9a9e988ca9d654d765 Mon Sep 17 00:00:00 2001
+From: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
+Date: Mon, 4 Feb 2013 15:56:05 +0400
+Subject: PCI/PM: Clear state_saved during suspend
+
+From: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
+
+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 <khlebnikov@openvz.org> # add comment
+Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
+Signed-off-by: Yijing Wang <wangyijing@huawei.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ 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)
index 7f8f73c63d9a53ad917bca01f44500d9bdcf5e76..e5391e35877827603d42ab1577754f49d32d4770 100644 (file)
@@ -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