Revert "swsusp special saveable pages support" commits

This reverts commits

  3e3318dee0 [PATCH] swsusp: x86_64 mark special saveable/unsaveable pages
  b6370d96e0 [PATCH] swsusp: i386 mark special saveable/unsaveable pages
  ce4ab0012b [PATCH] swsusp: add architecture special saveable pages support

because not only do they apparently cause page faults on x86, the
infrastructure doesn't compile on powerpc.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
Linus Torvalds
2006-06-25 18:41:00 -07:00
parent 5503967307
commit 3448097fcc
6 changed files with 18 additions and 318 deletions

View File

@@ -62,6 +62,16 @@ unsigned long image_size = 500 * 1024 * 1024;
int in_suspend __nosavedata = 0;
#ifdef CONFIG_HIGHMEM
unsigned int count_highmem_pages(void);
int save_highmem(void);
int restore_highmem(void);
#else
static inline int save_highmem(void) { return 0; }
static inline int restore_highmem(void) { return 0; }
static inline unsigned int count_highmem_pages(void) { return 0; }
#endif
/**
* The following functions are used for tracing the allocated
* swap pages, so that they can be freed in case of an error.
@@ -182,7 +192,7 @@ int swsusp_shrink_memory(void)
printk("Shrinking memory... ");
do {
size = 2 * count_special_pages();
size = 2 * count_highmem_pages();
size += size / 50 + count_data_pages();
size += (size + PBES_PER_PAGE - 1) / PBES_PER_PAGE +
PAGES_FOR_IO;
@@ -226,7 +236,7 @@ int swsusp_suspend(void)
goto Enable_irqs;
}
if ((error = save_special_mem())) {
if ((error = save_highmem())) {
printk(KERN_ERR "swsusp: Not enough free pages for highmem\n");
goto Restore_highmem;
}
@@ -237,7 +247,7 @@ int swsusp_suspend(void)
/* Restore control flow magically appears here */
restore_processor_state();
Restore_highmem:
restore_special_mem();
restore_highmem();
device_power_up();
Enable_irqs:
local_irq_enable();
@@ -263,7 +273,7 @@ int swsusp_resume(void)
*/
swsusp_free();
restore_processor_state();
restore_special_mem();
restore_highmem();
touch_softlockup_watchdog();
device_power_up();
local_irq_enable();