[TRIVIAL] Drain local pages to make swsusp work

From: Rusty Trivial Russell (rusty@rustcorp.com.au)
Date: Mon Jan 13 2003 - 21:42:54 EST


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/



This archive was generated by hypermail 2b29 : Wed Jan 15 2003 - 22:00:48 EST