--- include/linux/suspend.h | 1 + kernel/power/disk.c | 2 +- kernel/power/swsusp.c | 3 +++ 3 files changed, 5 insertions(+), 1 deletion(-) Index: linux-2.6.16-ck1/kernel/power/swsusp.c =================================================================== --- linux-2.6.16-ck1.orig/kernel/power/swsusp.c 2006-03-20 20:46:23.000000000 +1100 +++ linux-2.6.16-ck1/kernel/power/swsusp.c 2006-03-20 20:47:03.000000000 +1100 @@ -60,6 +60,7 @@ #include #include #include +#include #include #include @@ -632,6 +633,8 @@ Restore_highmem: device_power_up(); Enable_irqs: local_irq_enable(); + if (!in_suspend) + aggressive_swap_prefetch(); return error; } Index: linux-2.6.16-ck1/include/linux/suspend.h =================================================================== --- linux-2.6.16-ck1.orig/include/linux/suspend.h 2006-03-20 20:46:23.000000000 +1100 +++ linux-2.6.16-ck1/include/linux/suspend.h 2006-03-20 20:47:03.000000000 +1100 @@ -42,6 +42,7 @@ extern void mark_free_pages(struct zone #ifdef CONFIG_PM /* kernel/power/swsusp.c */ extern int software_suspend(void); +extern int in_suspend; #if defined(CONFIG_VT) && defined(CONFIG_VT_CONSOLE) extern int pm_prepare_console(void); Index: linux-2.6.16-ck1/kernel/power/disk.c =================================================================== --- linux-2.6.16-ck1.orig/kernel/power/disk.c 2006-03-20 20:46:23.000000000 +1100 +++ linux-2.6.16-ck1/kernel/power/disk.c 2006-03-20 20:47:03.000000000 +1100 @@ -71,7 +71,7 @@ static void power_down(suspend_disk_meth } -static int in_suspend __nosavedata = 0; +int in_suspend __nosavedata = 0; static inline void platform_finish(void)