From: Pavel Machek <pavel@ucw.cz>

If too much memory is free, swsusp dies in quite a ugly way.  Even when it
is not neccessary to relocate pagedir, it is proably still neccessary to
relocate individual pages.  Thanks to Kurt Garloff and Stefan Seyfried.

Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/kernel/power/swsusp.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff -puN kernel/power/swsusp.c~swsusp-kill-crash-when-too-much-memory-is-free kernel/power/swsusp.c
--- 25/kernel/power/swsusp.c~swsusp-kill-crash-when-too-much-memory-is-free	Thu Sep  9 15:46:23 2004
+++ 25-akpm/kernel/power/swsusp.c	Thu Sep  9 15:46:23 2004
@@ -949,9 +949,9 @@ static int __init swsusp_pagedir_relocat
 
 	printk("Relocating pagedir ");
 
-	if(!does_collide_order(old_pagedir, (unsigned long)old_pagedir, pagedir_order)) {
+	if (!does_collide_order(old_pagedir, (unsigned long)old_pagedir, pagedir_order)) {
 		printk("not necessary\n");
-		return 0;
+		return check_pagedir();
 	}
 
 	while ((m = (void *) __get_free_pages(GFP_ATOMIC, pagedir_order)) != NULL) {
_