Linus Torvalds
52ade9b3b9
Fix ACPI suspend / device suspend ordering problem
...
In commit e3c7db621b we fixed the resume
ordering, so that the ACPI low-level resume code was called before the
actual driver resume was called. However, that broke the nesting logic
of suspend and resume, and we continued to suspend the devices _after_
we the ACPI device suspend code was called.
That resulted in us saving PCI state for devices that had already been
changed by ACPI, and in some cases disabled entirely (causing the PCI
save_state to be all-ones). Which in turn caused the wrong state to be
written back on resume.
This moves the ACPI device suspend to after the device model per-device
suspend() calls. This fixes the bogus state save.
Thanks to Lukáš Hejtmánek for testing.
Acked-by: Lukas Hejtmanek <xhejtman@ics.muni.cz>
Acked-by: Rafael J. Wysocki <rjw@sisk.pl>
Cc: Len Brown <len.brown@intel.com>
Cc: Pavel Machek <pavel@ucw.cz>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-16 15:33:19 -07:00
..
irq
[IA64] SN: validate smp_affinity mask on intr redirect
2007-05-11 09:35:38 -07:00
power
Fix ACPI suspend / device suspend ordering problem
2007-05-16 15:33:19 -07:00
time
clocksource: fix lock order in the resume path
2007-05-15 08:54:00 -07:00
.gitignore
acct.c
audit.c
audit: add spaces on either side of case "..." operator.
2007-05-08 11:15:09 -07:00
audit.h
[PATCH] audit signal recipients
2007-05-11 05:38:25 -04:00
auditfilter.c
audit_match_signal() and friends are used only if CONFIG_AUDITSYSCALL is set
2007-05-15 18:56:37 -07:00
auditsc.c
[PATCH] Abnormal End of Processes
2007-05-11 05:38:26 -04:00
capability.c
compat.c
signal/timer/event: timerfd compat code
2007-05-11 08:29:36 -07:00
configs.c
use simple_read_from_buffer in kernel/
2007-05-09 12:30:49 -07:00
cpu.c
microcode: use suspend-related CPU hotplug notifications
2007-05-09 12:30:56 -07:00
cpuset.c
use simple_read_from_buffer in kernel/
2007-05-09 12:30:49 -07:00
delayacct.c
die_notifier.c
dma.c
exec_domain.c
exit.c
signal/timer/event: signalfd core
2007-05-11 08:29:36 -07:00
extable.c
fork.c
signal/timer/event: signalfd core
2007-05-11 08:29:36 -07:00
futex.c
FUTEX: new PRIVATE futexes
2007-05-09 12:30:55 -07:00
futex_compat.c
futex_requeue_pi optimization
2007-05-09 12:30:55 -07:00
hrtimer.c
Add suspend-related notifications for CPU hotplug
2007-05-09 12:30:56 -07:00
itimer.c
The scheduled -EINVAL for invalid timevals in setitimer
2007-05-08 11:15:13 -07:00
kallsyms.c
kallsyms: cleanup: use seq_release_private() where appropriate
2007-05-08 11:15:09 -07:00
Kconfig.hz
Kconfig.preempt
Fix trivial typos in Kconfig* files
2007-05-09 07:12:20 +02:00
kexec.c
kfifo.c
kmod.c
wait_for_helper: remove unneeded do_sigaction()
2007-05-09 12:30:53 -07:00
kprobes.c
Kprobes: The ON/OFF knob thru debugfs
2007-05-08 11:15:19 -07:00
ksysfs.c
kthread.c
change kernel threads to ignore signals instead of blocking them
2007-05-09 12:30:53 -07:00
latency.c
lockdep.c
lockdep: removed unused ip argument in mark_lock & mark_held_locks
2007-05-08 11:15:13 -07:00
lockdep_internals.h
lockdep_proc.c
Makefile
module.c
Fix minor typoes in kernel/module.c
2007-05-09 07:26:28 +02:00
mutex-debug.c
mutex-debug.h
mutex.c
wrap access to thread_info
2007-05-09 12:30:56 -07:00
mutex.h
nsproxy.c
panic.c
params.c
kernel/params.c: fix lying comment for param_array()
2007-05-08 11:15:08 -07:00
pid.c
statically initialize struct pid for swapper
2007-05-11 08:29:35 -07:00
posix-cpu-timers.c
Introduce a handy list_first_entry macro
2007-05-08 11:15:11 -07:00
posix-timers.c
printk.c
profile.c
Add suspend-related notifications for CPU hotplug
2007-05-09 12:30:56 -07:00
ptrace.c
[PATCH] auditing ptrace
2007-05-11 05:38:25 -04:00
rcupdate.c
Add suspend-related notifications for CPU hotplug
2007-05-09 12:30:56 -07:00
rcutorture.c
rcutorture: Remove redundant assignment to cur_ops in for loop
2007-05-08 11:15:17 -07:00
relay.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial
2007-05-09 12:54:17 -07:00
resource.c
rtmutex-debug.c
rtmutex-debug.h
rtmutex-tester.c
rtmutex.c
futex_requeue_pi optimization
2007-05-09 12:30:55 -07:00
rtmutex.h
rtmutex_common.h
futex_requeue_pi optimization
2007-05-09 12:30:55 -07:00
rwsem.c
Lockdep treats down_write_trylock like regular down_write
2007-05-08 11:15:09 -07:00
sched.c
Add suspend-related notifications for CPU hotplug
2007-05-09 12:30:56 -07:00
seccomp.c
signal.c
Merge branch 'audit.b38' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current
2007-05-11 09:57:16 -07:00
softirq.c
Add suspend-related notifications for CPU hotplug
2007-05-09 12:30:56 -07:00
softlockup.c
Add suspend-related notifications for CPU hotplug
2007-05-09 12:30:56 -07:00
spinlock.c
srcu.c
stacktrace.c
stop_machine.c
stop_machine() now uses hard_irq_disable
2007-05-11 08:29:34 -07:00
sys.c
attach_pid() with struct pid parameter
2007-05-11 08:29:35 -07:00
sys_ni.c
compat signalfd and timerfd are cond syscalls
2007-05-12 10:55:40 -07:00
sysctl.c
Make vm statistics update interval configurable
2007-05-09 12:30:56 -07:00
taskstats.c
time.c
timer.c
timekeeping fix patch got mis-applied
2007-05-14 12:13:11 -07:00
tsacct.c
uid16.c
user.c
utsname.c
utsname_sysctl.c
wait.c
Fix occurrences of "the the "
2007-05-09 08:57:56 +02:00
workqueue.c
Add suspend-related notifications for CPU hotplug
2007-05-09 12:30:56 -07:00