linux/kernel
Rafael J. Wysocki 4a3b98a422 [PATCH] swsusp: prevent possible image corruption on resume
The function free_pagedir() used by swsusp for freeing its internal data
structures clears the PG_nosave and PG_nosave_free flags for each page
being freed.

However, during resume PG_nosave_free set means that the page in
question is "unsafe" (ie.  it will be overwritten in the process of
restoring the saved system state from the image), so it should not be
used for the image data.

Therefore free_pagedir() should not clear PG_nosave_free if it's called
during resume (otherwise "unsafe" pages freed by it may be used for
storing the image data and the data may get corrupted later on).

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-04-19 09:13:49 -07:00
..
irq [PATCH] build kernel/irq/migration.c only if CONFIG_GENERIC_PENDING_IRQ is set 2006-04-11 06:18:41 -07:00
power [PATCH] swsusp: prevent possible image corruption on resume 2006-04-19 09:13:49 -07:00
.gitignore
acct.c [PATCH] Fix pacct bug in multithreading case. 2006-03-31 12:18:54 -08:00
audit.c [PATCH] Don't pass boot parameters to argv_init[] 2006-03-31 12:18:53 -08:00
audit.h
auditfilter.c
auditsc.c
capability.c
compat.c
configs.c
cpu.c
cpuset.c [PATCH] cpuset: memory migration interaction fix 2006-03-31 12:18:55 -08:00
dma.c
exec_domain.c
exit.c [PATCH] task: Make task list manipulations RCU safe 2006-04-19 09:13:49 -07:00
extable.c
fork.c [PATCH] task: Make task list manipulations RCU safe 2006-04-19 09:13:49 -07:00
futex_compat.c [PATCH] futex: check and validate timevals 2006-03-31 12:18:59 -08:00
futex.c [PATCH] futex: check and validate timevals 2006-03-31 12:18:59 -08:00
hrtimer.c [PATCH] add cpu_relax to hrtimer_cancel 2006-04-11 06:18:42 -07:00
intermodule.c
itimer.c
kallsyms.c
Kconfig.hz
Kconfig.preempt
kexec.c
kfifo.c
kmod.c
kprobes.c
ksysfs.c
kthread.c
Makefile
module.c [PATCH] modules: permit Dual-MIT/GPL licenses 2006-03-31 12:18:56 -08:00
mutex-debug.c
mutex-debug.h
mutex.c
mutex.h
panic.c [PATCH] the scheduled unexport of panic_timeout 2006-04-11 06:18:40 -07:00
params.c
pid.c [PATCH] pidhash: Refactor the pid hash table 2006-03-31 12:19:00 -08:00
posix-cpu-timers.c
posix-timers.c
printk.c BUG_ON() Conversion in kernel/printk.c 2006-04-01 01:21:17 +02:00
profile.c
ptrace.c [PATCH] fix non-leader exec under ptrace 2006-04-14 08:59:13 -07:00
rcupdate.c
rcutorture.c
relay.c
resource.c
sched.c [PATCH] sched: don't awaken RT tasks on expired array 2006-04-11 06:18:30 -07:00
seccomp.c
signal.c [PATCH] fix non-leader exec under ptrace 2006-04-14 08:59:13 -07:00
softirq.c
softlockup.c
spinlock.c
stop_machine.c
sys_ni.c [PATCH] frv: define MMU mode specific syscalls as 'cond_syscall' and clean up unneeded macros 2006-04-11 06:18:33 -07:00
sys.c [PATCH] Make setsid() more robust 2006-03-31 12:18:59 -08:00
sysctl.c
time.c Fix comments: s/granuality/granularity/ 2006-04-01 01:41:22 +02:00
timer.c [PATCH] timer initialisation fix 2006-04-11 06:18:40 -07:00
uid16.c
user.c
wait.c
workqueue.c