diff options
Diffstat (limited to 'kernel/power')
-rw-r--r-- | kernel/power/swsusp.c | 19 |
1 files changed, 2 insertions, 17 deletions
diff --git a/kernel/power/swsusp.c b/kernel/power/swsusp.c index 339b5c3735bd..7747a8c43e84 100644 --- a/kernel/power/swsusp.c +++ b/kernel/power/swsusp.c | |||
@@ -929,21 +929,6 @@ int swsusp_resume(void) | |||
929 | return error; | 929 | return error; |
930 | } | 930 | } |
931 | 931 | ||
932 | /* More restore stuff */ | ||
933 | |||
934 | /* | ||
935 | * Returns true if given address/order collides with any orig_address | ||
936 | */ | ||
937 | static int does_collide_order(unsigned long addr, int order) | ||
938 | { | ||
939 | int i; | ||
940 | |||
941 | for (i=0; i < (1<<order); i++) | ||
942 | if (!PageNosaveFree(virt_to_page(addr + i * PAGE_SIZE))) | ||
943 | return 1; | ||
944 | return 0; | ||
945 | } | ||
946 | |||
947 | /** | 932 | /** |
948 | * On resume, for storing the PBE list and the image, | 933 | * On resume, for storing the PBE list and the image, |
949 | * we can only use memory pages that do not conflict with the pages | 934 | * we can only use memory pages that do not conflict with the pages |
@@ -973,7 +958,7 @@ static unsigned long get_usable_page(unsigned gfp_mask) | |||
973 | unsigned long m; | 958 | unsigned long m; |
974 | 959 | ||
975 | m = get_zeroed_page(gfp_mask); | 960 | m = get_zeroed_page(gfp_mask); |
976 | while (does_collide_order(m, 0)) { | 961 | while (!PageNosaveFree(virt_to_page(m))) { |
977 | eat_page((void *)m); | 962 | eat_page((void *)m); |
978 | m = get_zeroed_page(gfp_mask); | 963 | m = get_zeroed_page(gfp_mask); |
979 | if (!m) | 964 | if (!m) |
@@ -1061,7 +1046,7 @@ static struct pbe * swsusp_pagedir_relocate(struct pbe *pblist) | |||
1061 | /* Relocate colliding pages */ | 1046 | /* Relocate colliding pages */ |
1062 | 1047 | ||
1063 | for_each_pb_page (pbpage, pblist) { | 1048 | for_each_pb_page (pbpage, pblist) { |
1064 | if (does_collide_order((unsigned long)pbpage, 0)) { | 1049 | if (!PageNosaveFree(virt_to_page((unsigned long)pbpage))) { |
1065 | m = (void *)get_usable_page(GFP_ATOMIC | __GFP_COLD); | 1050 | m = (void *)get_usable_page(GFP_ATOMIC | __GFP_COLD); |
1066 | if (!m) { | 1051 | if (!m) { |
1067 | error = -ENOMEM; | 1052 | error = -ENOMEM; |