projects
/
linux-2.6-block.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
mm/vmalloc: pass VM_USERMAP flags directly to __vmalloc_node_range()
[linux-2.6-block.git]
/
kernel
/
power
/
snapshot.c
diff --git
a/kernel/power/snapshot.c
b/kernel/power/snapshot.c
index 640b2034edd660da46372b38d8eca7b37bd482fc..4802b039b89f54f60d458405a7db128ff1c09648 100644
(file)
--- a/
kernel/power/snapshot.c
+++ b/
kernel/power/snapshot.c
@@
-1215,14
+1215,16
@@
static struct page *saveable_highmem_page(struct zone *zone, unsigned long pfn)
if (!pfn_valid(pfn))
return NULL;
if (!pfn_valid(pfn))
return NULL;
- page = pfn_to_page(pfn);
- if (page_zone(page) != zone)
+ page = pfn_to_
online_
page(pfn);
+ if (
!page ||
page_zone(page) != zone)
return NULL;
BUG_ON(!PageHighMem(page));
return NULL;
BUG_ON(!PageHighMem(page));
- if (swsusp_page_is_forbidden(page) || swsusp_page_is_free(page) ||
- PageReserved(page))
+ if (swsusp_page_is_forbidden(page) || swsusp_page_is_free(page))
+ return NULL;
+
+ if (PageReserved(page) || PageOffline(page))
return NULL;
if (page_is_guard(page))
return NULL;
if (page_is_guard(page))
@@
-1277,8
+1279,8
@@
static struct page *saveable_page(struct zone *zone, unsigned long pfn)
if (!pfn_valid(pfn))
return NULL;
if (!pfn_valid(pfn))
return NULL;
- page = pfn_to_page(pfn);
- if (page_zone(page) != zone)
+ page = pfn_to_
online_
page(pfn);
+ if (
!page ||
page_zone(page) != zone)
return NULL;
BUG_ON(PageHighMem(page));
return NULL;
BUG_ON(PageHighMem(page));
@@
-1286,6
+1288,9
@@
static struct page *saveable_page(struct zone *zone, unsigned long pfn)
if (swsusp_page_is_forbidden(page) || swsusp_page_is_free(page))
return NULL;
if (swsusp_page_is_forbidden(page) || swsusp_page_is_free(page))
return NULL;
+ if (PageOffline(page))
+ return NULL;
+
if (PageReserved(page)
&& (!kernel_page_present(page) || pfn_is_nosave(pfn)))
return NULL;
if (PageReserved(page)
&& (!kernel_page_present(page) || pfn_is_nosave(pfn)))
return NULL;