From: Pavel Machek <pavel@ucw.cz>

This is my fault from long time ago: copy_page can't be used for copying
task struct, therefore we can't use it in swsusp.

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

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

diff -puN kernel/power/swsusp.c~mm-swsusp-copy_page-is-harmfull kernel/power/swsusp.c
--- 25/kernel/power/swsusp.c~mm-swsusp-copy_page-is-harmfull	2004-08-04 20:37:36.057447776 -0700
+++ 25-akpm/kernel/power/swsusp.c	2004-08-04 20:37:36.061447168 -0700
@@ -581,12 +581,8 @@ static void copy_data_pages(void)
 					struct page * page;
 					page = pfn_to_page(zone_pfn + zone->zone_start_pfn);
 					pbe->orig_address = (long) page_address(page);
-					/* Copy page is dangerous: it likes to mess with
-					   preempt count on specific cpus. Wrong preempt 
-					   count is then copied, oops. 
-					*/
-					copy_page((void *)pbe->address, 
-						  (void *)pbe->orig_address);
+					/* copy_page is no usable for copying task structs. */
+					memcpy((void *)pbe->address, (void *)pbe->orig_address, PAGE_SIZE);
 					pbe++;
 				}
 			}
_