Rafael J. Wysocki
e3c7db621b
[PATCH] PM: Change code ordering in main.c
...
As indicated in a recent thread on Linux-PM, it's necessary to call
pm_ops->finish() before devce_resume(), but enable_nonboot_cpus() has to be
called before pm_ops->finish() (cf.
http://lists.osdl.org/pipermail/linux-pm/2006-November/004164.html ). For
consistency, it seems reasonable to call disable_nonboot_cpus() after
device_suspend().
This way the suspend code will remain symmetrical with respect to the resume
code and it may allow us to speed up things in the future by suspending and
resuming devices and/or saving the suspend image in many threads.
The following series of patches reorders the suspend and resume code so that
nonboot CPUs are disabled after devices have been suspended and enabled before
the devices are resumed. It also causes pm_ops->finish() to be called after
enable_nonboot_cpus() wherever necessary.
This patch:
Change the ordering of code in kernel/power/main.c so that device_suspend()
is called before disable_nonboot_cpus() and pm_ops->finish() is called after
enable_nonboot_cpus() and before device_resume(), as indicated by recent
discussion on Linux-PM
(cf. http://lists.osdl.org/pipermail/linux-pm/2006-November/004164.html ).
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Pavel Machek <pavel@ucw.cz>
Cc: Greg KH <greg@kroah.com>
Cc: Nigel Cunningham <nigel@suspend2.net>
Cc: Patrick Mochel <mochel@digitalimplant.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-02-11 10:51:19 -08:00
..
irq
devres: device resource management
2007-02-09 17:39:36 -05:00
power
[PATCH] PM: Change code ordering in main.c
2007-02-11 10:51:19 -08:00
time
[PATCH] clocksource: small cleanup
2006-12-10 09:57:22 -08:00
.gitignore
acct.c
[PATCH] kernel: change uses of f_{dentry, vfsmnt} to use f_path
2006-12-08 08:28:42 -08:00
audit.c
[PATCH] Add include/linux/freezer.h and move definitions from sched.h
2006-12-07 08:39:27 -08:00
audit.h
auditfilter.c
[PATCH] audit: fix kstrdup() error check
2006-12-22 08:55:49 -08:00
auditsc.c
[PATCH] struct path: convert kernel
2006-12-08 08:28:46 -08:00
capability.c
compat.c
[PATCH] Create compat_sys_migrate_pages
2006-11-03 12:27:59 -08:00
configs.c
[PATCH] struct seq_operations and struct file_operations constification
2006-12-07 08:39:46 -08:00
cpu.c
[PATCH] Change cpu_up and co from __devinit to __cpuinit
2007-01-11 18:18:20 -08:00
cpuset.c
[PATCH] cpuset procfs warning fix
2006-12-30 10:56:43 -08:00
delayacct.c
[PATCH] slab: remove kmem_cache_t
2006-12-07 08:39:25 -08:00
dma.c
[PATCH] struct seq_operations and struct file_operations constification
2006-12-07 08:39:46 -08:00
exec_domain.c
exit.c
[PATCH] namespaces: fix task exit disaster
2007-01-30 13:40:36 -08:00
extable.c
fork.c
[PATCH] fork_idle() should be __cpuinit, not __devinit
2007-02-01 16:17:06 -08:00
futex.c
[PATCH] kernel: change uses of f_{dentry, vfsmnt} to use f_path
2006-12-08 08:28:42 -08:00
futex_compat.c
hrtimer.c
itimer.c
kallsyms.c
[PATCH] move kallsyms data to .rodata
2006-12-08 08:28:37 -08:00
Kconfig.hz
[PATCH] HZ: 300Hz support
2006-12-07 08:39:36 -08:00
Kconfig.preempt
kexec.c
Merge branch 'release' of master.kernel.org:/pub/scm/linux/kernel/git/aegl/linux-2.6
2006-12-07 15:39:22 -08:00
kfifo.c
kmod.c
[PATCH] rename struct namespace to struct mnt_namespace
2006-12-08 08:28:51 -08:00
kprobes.c
[PATCH] kprobes: replace magic numbers with enum
2007-01-30 16:01:35 -08:00
ksysfs.c
kthread.c
WorkStruct: Pass the work_struct pointer instead of context data
2006-11-22 14:55:48 +00:00
latency.c
[PATCH] severing module.h->sched.h
2006-12-04 02:00:22 -05:00
lockdep.c
[PATCH] lockdep: printk warning fix
2006-12-30 10:56:43 -08:00
lockdep_internals.h
[PATCH] lockdep: more chains
2006-12-07 08:39:43 -08:00
lockdep_proc.c
[PATCH] struct seq_operations and struct file_operations constification
2006-12-07 08:39:46 -08:00
Makefile
Remove stack unwinder for now
2006-12-15 08:47:51 -08:00
module.c
/sys/modules/*/holders
2007-02-07 10:37:12 -08:00
mutex-debug.c
[PATCH] lockdep: show more details about self-test failures
2006-12-07 08:39:43 -08:00
mutex-debug.h
mutex.c
[PATCH] lockdep: avoid lockdep warning in md
2006-12-08 08:28:39 -08:00
mutex.h
nsproxy.c
Revert "[PATCH] namespaces: fix exit race by splitting exit"
2007-01-30 13:35:18 -08:00
panic.c
params.c
/sys/modules/*/holders
2007-02-07 10:37:12 -08:00
pid.c
[PATCH] namespaces: fix task exit disaster
2007-01-30 13:40:36 -08:00
posix-cpu-timers.c
posix-timers.c
[PATCH] slab: remove kmem_cache_t
2006-12-07 08:39:25 -08:00
printk.c
[PATCH] make kernel/printk.c:ignore_loglevel_setup() static
2006-12-22 08:55:47 -08:00
profile.c
[PATCH] fix "kvm: add vm exit profiling"
2007-01-23 07:52:05 -08:00
ptrace.c
rcupdate.c
[PATCH] rcu: add a prefetch() in rcu_do_batch()
2006-12-07 08:39:40 -08:00
rcutorture.c
[PATCH] rcu: rcutorture suspend fix
2006-12-30 10:55:55 -08:00
relay.c
[PATCH] relay: remove inlining
2006-12-22 08:55:51 -08:00
resource.c
devres: device resource management
2007-02-09 17:39:36 -05:00
rtmutex-debug.c
rtmutex-debug.h
rtmutex-tester.c
[PATCH] Add include/linux/freezer.h and move definitions from sched.h
2006-12-07 08:39:27 -08:00
rtmutex.c
rtmutex.h
rtmutex_common.h
rwsem.c
sched.c
[PATCH] sched: tasks cannot run on cpus onlined after boot
2007-01-11 18:18:20 -08:00
seccomp.c
signal.c
[PATCH] PM: Fix freezing of stopped tasks
2006-12-13 09:05:49 -08:00
softirq.c
[PATCH] softirq: remove BUG_ONs which can incorrectly trigger
2006-12-07 08:39:43 -08:00
softlockup.c
spinlock.c
[PATCH] lockdep: spin_lock_irqsave_nested()
2006-11-25 13:28:34 -08:00
srcu.c
stacktrace.c
stop_machine.c
sys.c
[PATCH] notifiers: fix blocking_notifier_call_chain() scalability
2007-01-23 11:08:03 -08:00
sys_ni.c
[PATCH] Create compat_sys_migrate_pages
2006-11-03 12:27:59 -08:00
sysctl.c
[PATCH] make reading /proc/sys/kernel/cap-bould not require CAP_SYS_MODULE
2007-02-11 10:51:19 -08:00
taskstats.c
[PATCH] taskstats: cleanup reply assembling
2006-12-07 08:39:34 -08:00
time.c
timer.c
[PATCH] schedule_timeout(): improve warning message
2006-12-22 08:55:49 -08:00
tsacct.c
[PATCH] io-accounting: via taskstats
2006-12-10 09:55:41 -08:00
uid16.c
user.c
[PATCH] slab: remove kmem_cache_t
2006-12-07 08:39:25 -08:00
utsname.c
wait.c
workqueue.c
[PATCH] fix kernel-doc warnings in 2.6.20-rc1
2006-12-22 08:55:47 -08:00