From: Greg Kroah-Hartman Date: Mon, 9 Dec 2013 08:46:20 +0000 (-0800) Subject: removed queue-3.12/cpufreq-fix-garbage-kobjects-on-errors-during-suspend-resume.patch X-Git-Tag: v3.4.74~16 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=31a3b40f4655fe7972b6e86daecf2bc602ed17fc;p=thirdparty%2Fkernel%2Fstable-queue.git removed queue-3.12/cpufreq-fix-garbage-kobjects-on-errors-during-suspend-resume.patch --- diff --git a/queue-3.12/cpufreq-fix-garbage-kobjects-on-errors-during-suspend-resume.patch b/queue-3.12/cpufreq-fix-garbage-kobjects-on-errors-during-suspend-resume.patch deleted file mode 100644 index ac113f3245f..00000000000 --- a/queue-3.12/cpufreq-fix-garbage-kobjects-on-errors-during-suspend-resume.patch +++ /dev/null @@ -1,90 +0,0 @@ -From 2167e2399dc5e69c62db56d933e9c8cbe107620a Mon Sep 17 00:00:00 2001 -From: Bjørn Mork -Date: Tue, 3 Dec 2013 12:14:32 +0100 -Subject: cpufreq: fix garbage kobjects on errors during suspend/resume - -From: Bjørn Mork - -commit 2167e2399dc5e69c62db56d933e9c8cbe107620a upstream. - -This is effectively a revert of commit 5302c3fb2e62 ("cpufreq: Perform -light-weight init/teardown during suspend/resume"), which enabled -suspend/resume optimizations leaving the sysfs files in place. - -Errors during suspend/resume are not handled properly, leaving -dead sysfs attributes in case of failures. There are are number of -functions with special code for the "frozen" case, and all these -need to also have special error handling. - -The problem is easy to demonstrate by making cpufreq_driver->init() -or cpufreq_driver->get() fail during resume. - -The code is too complex for a simple fix, with split code paths -in multiple blocks within a number of functions. It is therefore -best to revert the patch enabling this code until the error handling -is in place. - -Examples of problems resulting from resume errors: - -WARNING: CPU: 0 PID: 6055 at fs/sysfs/file.c:343 sysfs_open_file+0x77/0x212() -missing sysfs attribute operations for kobject: (null) -Modules linked in: [stripped as irrelevant] -CPU: 0 PID: 6055 Comm: grep Tainted: G D 3.13.0-rc2 #153 -Hardware name: LENOVO 2776LEG/2776LEG, BIOS 6EET55WW (3.15 ) 12/19/2011 - 0000000000000009 ffff8802327ebb78 ffffffff81380b0e 0000000000000006 - ffff8802327ebbc8 ffff8802327ebbb8 ffffffff81038635 0000000000000000 - ffffffff811823c7 ffff88021a19e688 ffff88021a19e688 ffff8802302f9310 -Call Trace: - [] dump_stack+0x55/0x76 - [] warn_slowpath_common+0x7c/0x96 - [] ? sysfs_open_file+0x77/0x212 - [] warn_slowpath_fmt+0x41/0x43 - [] ? sysfs_get_active+0x6b/0x82 - [] ? sysfs_open_file+0x32/0x212 - [] sysfs_open_file+0x77/0x212 - [] ? sysfs_schedule_callback+0x1ac/0x1ac - [] do_dentry_open+0x17c/0x257 - [] finish_open+0x41/0x4f - [] do_last+0x80c/0x9ba - [] ? inode_permission+0x40/0x42 - [] path_openat+0x233/0x4a1 - [] do_filp_open+0x35/0x85 - [] ? __alloc_fd+0x172/0x184 - [] do_sys_open+0x6b/0xfa - [] SyS_openat+0xf/0x11 - [] system_call_fastpath+0x16/0x1b - -The failure to restore cpufreq devices on cancelled hibernation is -not a new bug. It is caused by the ACPI _PPC call failing unless the -hibernate is completed. This makes the acpi_cpufreq driver fail its -init. - -Previously, the cpufreq device could be restored by offlining the -cpu temporarily. And as a complete hibernation cycle would do this, -it would be automatically restored most of the time. But after -commit 5302c3fb2e62 the leftover sysfs attributes will block any -device add action. Therefore offlining and onlining CPU 1 will no -longer restore the cpufreq object, and a complete suspend/resume -cycle will replace it with garbage. - -Fixes: 5302c3fb2e62 ("cpufreq: Perform light-weight init/teardown during suspend/resume") -Signed-off-by: Bjørn Mork -Signed-off-by: Rafael J. Wysocki -Signed-off-by: Greg Kroah-Hartman - ---- - drivers/cpufreq/cpufreq.c | 3 --- - 1 file changed, 3 deletions(-) - ---- a/drivers/cpufreq/cpufreq.c -+++ b/drivers/cpufreq/cpufreq.c -@@ -2044,9 +2044,6 @@ static int cpufreq_cpu_callback(struct n - dev = get_cpu_device(cpu); - if (dev) { - -- if (action & CPU_TASKS_FROZEN) -- frozen = true; -- - switch (action & ~CPU_TASKS_FROZEN) { - case CPU_ONLINE: - __cpufreq_add_dev(dev, NULL, frozen); diff --git a/queue-3.12/series b/queue-3.12/series index d762b9aece8..b236095f002 100644 --- a/queue-3.12/series +++ b/queue-3.12/series @@ -42,7 +42,6 @@ parisc-fix-mmap-map_fixed-map_shared-to-already-mmapped-address.patch xen-gnttab-leave-lazy-mmu-mode-in-the-case-of-a-m2p-override-failure.patch spi-pxa2xx-add-new-acpi-ids.patch cpuidle-check-for-dev-before-deregistering-it.patch -cpufreq-fix-garbage-kobjects-on-errors-during-suspend-resume.patch update-of-blkg_stat-and-blkg_rwstat-may-happen-in-bh-context.patch irq-enable-all-irqs-unconditionally-in-irq_resume.patch net-update-consumers-of-msg_more-to-recognize-msg_sendpage_notlast.patch