[TRIVIAL] Drain local pages to make swsusp work

Rusty Trivial Russell (rusty@rustcorp.com.au)
Tue, 14 Jan 2003 13:42:54 +1100


From: Pavel Machek <pavel@ucw.cz>

Hi!

With local pages present, swsusp's accounting goes wrong and you get
nice BUG(). This fixes it, please apply.
Pavel

--- trivial-2.5.57/kernel/suspend.c.orig 2003-01-14 12:54:30.000000000 +1100
+++ trivial-2.5.57/kernel/suspend.c 2003-01-14 12:54:30.000000000 +1100
@@ -680,6 +680,8 @@
struct sysinfo i;
unsigned int nr_needed_pages = 0;

+ drain_local_pages();
+
pagedir_nosave = NULL;
printk( "/critical section: Counting pages to copy" );
nr_copy_pages = count_and_copy_data_pages(NULL);
@@ -714,6 +716,7 @@
nr_copy_pages_check = nr_copy_pages;
pagedir_order_check = pagedir_order;

+ drain_local_pages(); /* During allocating of suspend pagedir, new cold pages may appear. Kill them */
if (nr_copy_pages != count_and_copy_data_pages(pagedir_nosave)) /* copy */
BUG();

-- 
  Don't blame me: the Monkey is driving
  File: Pavel Machek <pavel@ucw.cz>: Drain local pages to make swsusp work
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/