[PATCH] swsusp: Support i386 systems with PAE or without PSE

Make swsusp support i386 systems with PAE or without PSE.

This is done by creating temporary page tables located in resume-safe page
frames before the suspend image is restored in the same way as x86_64 does
it.

Signed-off-by: Rafael J. Wysocki <[email protected]>
Cc: Andi Kleen <[email protected]>
Cc: Dave Jones <[email protected]>
Cc: Nigel Cunningham <[email protected]>
Cc: Pavel Machek <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
Rafael J. Wysocki 2006-12-06 20:34:29 -08:00 • committed by Linus Torvalds
commit 2d4a34c936
5 changed files with 168 additions and 16 deletions

View file

@ -6,18 +6,7 @@
#include <asm/desc.h>
#include <asm/i387.h>
static inline int
arch_prepare_suspend(void)
{
/* If you want to make non-PSE machine work, turn off paging
in swsusp_arch_suspend. swsusp_pg_dir should have identity mapping, so
it could work... */
if (!cpu_has_pse) {
printk(KERN_ERR "PSE is required for swsusp.\n");
return -EPERM;
}
return 0;
}
static inline int arch_prepare_suspend(void) { return 0; }
/* image of the saved processor state */
struct saved_context {