diff options
Diffstat (limited to 'kernel/power/snapshot.c')
-rw-r--r-- | kernel/power/snapshot.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/kernel/power/snapshot.c b/kernel/power/snapshot.c index cc349437fb72..0036955357e0 100644 --- a/kernel/power/snapshot.c +++ b/kernel/power/snapshot.c | |||
@@ -37,6 +37,7 @@ | |||
37 | struct pbe *pagedir_nosave; | 37 | struct pbe *pagedir_nosave; |
38 | static unsigned int nr_copy_pages; | 38 | static unsigned int nr_copy_pages; |
39 | static unsigned int nr_meta_pages; | 39 | static unsigned int nr_meta_pages; |
40 | static unsigned long *buffer; | ||
40 | 41 | ||
41 | #ifdef CONFIG_HIGHMEM | 42 | #ifdef CONFIG_HIGHMEM |
42 | unsigned int count_highmem_pages(void) | 43 | unsigned int count_highmem_pages(void) |
@@ -389,7 +390,7 @@ struct pbe *alloc_pagedir(unsigned int nr_pages, gfp_t gfp_mask, int safe_needed | |||
389 | free_pagedir(pblist); | 390 | free_pagedir(pblist); |
390 | pblist = NULL; | 391 | pblist = NULL; |
391 | } else | 392 | } else |
392 | create_pbe_list(pblist, nr_pages); | 393 | create_pbe_list(pblist, nr_pages); |
393 | return pblist; | 394 | return pblist; |
394 | } | 395 | } |
395 | 396 | ||
@@ -418,6 +419,7 @@ void swsusp_free(void) | |||
418 | nr_copy_pages = 0; | 419 | nr_copy_pages = 0; |
419 | nr_meta_pages = 0; | 420 | nr_meta_pages = 0; |
420 | pagedir_nosave = NULL; | 421 | pagedir_nosave = NULL; |
422 | buffer = NULL; | ||
421 | } | 423 | } |
422 | 424 | ||
423 | 425 | ||
@@ -523,6 +525,8 @@ static void init_header(struct swsusp_info *info) | |||
523 | info->cpus = num_online_cpus(); | 525 | info->cpus = num_online_cpus(); |
524 | info->image_pages = nr_copy_pages; | 526 | info->image_pages = nr_copy_pages; |
525 | info->pages = nr_copy_pages + nr_meta_pages + 1; | 527 | info->pages = nr_copy_pages + nr_meta_pages + 1; |
528 | info->size = info->pages; | ||
529 | info->size <<= PAGE_SHIFT; | ||
526 | } | 530 | } |
527 | 531 | ||
528 | /** | 532 | /** |
@@ -568,8 +572,6 @@ static inline struct pbe *pack_orig_addresses(unsigned long *buf, struct pbe *pb | |||
568 | 572 | ||
569 | int snapshot_read_next(struct snapshot_handle *handle, size_t count) | 573 | int snapshot_read_next(struct snapshot_handle *handle, size_t count) |
570 | { | 574 | { |
571 | static unsigned long *buffer; | ||
572 | |||
573 | if (handle->page > nr_meta_pages + nr_copy_pages) | 575 | if (handle->page > nr_meta_pages + nr_copy_pages) |
574 | return 0; | 576 | return 0; |
575 | if (!buffer) { | 577 | if (!buffer) { |
@@ -774,7 +776,6 @@ static int create_image(struct snapshot_handle *handle) | |||
774 | 776 | ||
775 | int snapshot_write_next(struct snapshot_handle *handle, size_t count) | 777 | int snapshot_write_next(struct snapshot_handle *handle, size_t count) |
776 | { | 778 | { |
777 | static unsigned long *buffer; | ||
778 | int error = 0; | 779 | int error = 0; |
779 | 780 | ||
780 | if (handle->prev && handle->page > nr_meta_pages + nr_copy_pages) | 781 | if (handle->prev && handle->page > nr_meta_pages + nr_copy_pages) |