diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2004-06-17 18:09:16 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-06-17 18:09:16 -0700 |
commit | 21efc6307877147ba7766eb64cabafb77788ea87 (patch) | |
tree | 2a47fe0d5460da33f2ca536049cdc07093c705c6 /kernel | |
parent | 50fbef1d0f2552e76102590e00b292be6d22b181 (diff) | |
download | history-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.c | 20 | ||||
-rw-r--r-- | kernel/power/swsusp.c | 19 |
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; |