aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2004-06-17 18:09:16 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2004-06-17 18:09:16 -0700
commit21efc6307877147ba7766eb64cabafb77788ea87 (patch)
tree2a47fe0d5460da33f2ca536049cdc07093c705c6 /kernel
parent50fbef1d0f2552e76102590e00b292be6d22b181 (diff)
downloadhistory-21efc6307877147ba7766eb64cabafb77788ea87.tar.gz
[PATCH] swsusp: remove copy_pagedir
It can be replaced by a simple memcpy. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/power/pmdisk.c20
-rw-r--r--kernel/power/swsusp.c19
2 files changed, 7 insertions, 32 deletions
diff --git a/kernel/power/pmdisk.c b/kernel/power/pmdisk.c
index 5933cc999c6171..dd474ccdd1bef3 100644
--- a/kernel/power/pmdisk.c
+++ b/kernel/power/pmdisk.c
@@ -732,19 +732,6 @@ int pmdisk_resume(void)
/* More restore stuff */
-/* FIXME: Why not memcpy(to, from, 1<<pagedir_order*PAGE_SIZE)? */
-static void __init copy_pagedir(suspend_pagedir_t *to, suspend_pagedir_t *from)
-{
- int i;
- char *topointer=(char *)to, *frompointer=(char *)from;
-
- for(i=0; i < 1 << pagedir_order; i++) {
- copy_page(topointer, frompointer);
- topointer += PAGE_SIZE;
- frompointer += PAGE_SIZE;
- }
-}
-
#define does_collide(addr) does_collide_order(pm_pagedir_nosave, addr, 0)
/*
@@ -792,7 +779,7 @@ static int __init relocate_pagedir(void)
* We have to avoid recursion (not to overflow kernel stack),
* and that's why code looks pretty cryptic
*/
- suspend_pagedir_t *new_pagedir, *old_pagedir = pm_pagedir_nosave;
+ suspend_pagedir_t *old_pagedir = pm_pagedir_nosave;
void **eaten_memory = NULL;
void **c = eaten_memory, *m, *f;
int err;
@@ -808,8 +795,9 @@ static int __init relocate_pagedir(void)
while ((m = (void *) __get_free_pages(GFP_ATOMIC, pagedir_order))) {
if (!does_collide_order(old_pagedir, (unsigned long)m,
pagedir_order)) {
- pm_pagedir_nosave = new_pagedir = m;
- copy_pagedir(new_pagedir, old_pagedir);
+ pm_pagedir_nosave =
+ memcpy(m, old_pagedir,
+ PAGE_SIZE << pagedir_order);
err = 0;
break;
}
diff --git a/kernel/power/swsusp.c b/kernel/power/swsusp.c
index 41b3ad0301ac7c..ff8fdbc21a455d 100644
--- a/kernel/power/swsusp.c
+++ b/kernel/power/swsusp.c
@@ -863,19 +863,6 @@ int software_suspend(void)
/* More restore stuff */
-/* FIXME: Why not memcpy(to, from, 1<<pagedir_order*PAGE_SIZE)? */
-static void copy_pagedir(suspend_pagedir_t *to, suspend_pagedir_t *from)
-{
- int i;
- char *topointer=(char *)to, *frompointer=(char *)from;
-
- for(i=0; i < 1 << pagedir_order; i++) {
- copy_page(topointer, frompointer);
- topointer += PAGE_SIZE;
- frompointer += PAGE_SIZE;
- }
-}
-
#define does_collide(addr) does_collide_order(pagedir_nosave, addr, 0)
/*
@@ -923,7 +910,7 @@ static int relocate_pagedir(void)
* We have to avoid recursion (not to overflow kernel stack),
* and that's why code looks pretty cryptic
*/
- suspend_pagedir_t *new_pagedir, *old_pagedir = pagedir_nosave;
+ suspend_pagedir_t *old_pagedir = pagedir_nosave;
void **eaten_memory = NULL;
void **c = eaten_memory, *m, *f;
int ret = 0;
@@ -948,8 +935,8 @@ static int relocate_pagedir(void)
printk("out of memory\n");
ret = -ENOMEM;
} else {
- pagedir_nosave = new_pagedir = m;
- copy_pagedir(new_pagedir, old_pagedir);
+ pagedir_nosave =
+ memcpy(m, old_pagedir, PAGE_SIZE << pagedir_order);
}
c = eaten_memory;