Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 35688
b: refs/heads/master
c: 75534b5
h: refs/heads/master
v: v3
  • Loading branch information
Rafael J. Wysocki authored and Linus Torvalds committed Sep 26, 2006
1 parent b8855f6 commit d712216
Show file tree
Hide file tree
Showing 6 changed files with 19 additions and 19 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: dcbb5a54f6e3984efa24772394f2225b11495c55
refs/heads/master: 75534b50cc658e951bcb213c2763c81e9f7b0b48
2 changes: 1 addition & 1 deletion trunk/arch/i386/power/swsusp.S
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ ENTRY(swsusp_arch_resume)
movl $swsusp_pg_dir-__PAGE_OFFSET, %ecx
movl %ecx, %cr3

movl pagedir_nosave, %edx
movl restore_pblist, %edx
.p2align 4,,7

copy_loop:
Expand Down
4 changes: 2 additions & 2 deletions trunk/arch/powerpc/kernel/swsusp_32.S
Original file line number Diff line number Diff line change
Expand Up @@ -159,8 +159,8 @@ END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC)
isync

/* Load ptr the list of pages to copy in r3 */
lis r11,(pagedir_nosave - KERNELBASE)@h
ori r11,r11,pagedir_nosave@l
lis r11,(restore_pblist - KERNELBASE)@h
ori r11,r11,restore_pblist@l
lwz r10,0(r11)

/* Copy the pages. This is a very basic implementation, to
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/x86_64/kernel/suspend_asm.S
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ ENTRY(restore_image)
movq %rcx, %cr3;
movq %rax, %cr4; # turn PGE back on

movq pagedir_nosave(%rip), %rdx
movq restore_pblist(%rip), %rdx
loop:
testq %rdx, %rdx
jz done
Expand Down
2 changes: 0 additions & 2 deletions trunk/kernel/power/power.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,6 @@ extern struct subsystem power_subsys;
/* References to section boundaries */
extern const void __nosave_begin, __nosave_end;

extern struct pbe *pagedir_nosave;

/* Preferred image size in bytes (default 500 MB) */
extern unsigned long image_size;
extern int in_suspend;
Expand Down
26 changes: 14 additions & 12 deletions trunk/kernel/power/snapshot.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,9 @@

#include "power.h"

struct pbe *pagedir_nosave;
/* List of PBEs used for creating and restoring the suspend image */
struct pbe *restore_pblist;

static unsigned int nr_copy_pages;
static unsigned int nr_meta_pages;
static unsigned long *buffer;
Expand Down Expand Up @@ -415,7 +417,7 @@ void swsusp_free(void)
}
nr_copy_pages = 0;
nr_meta_pages = 0;
pagedir_nosave = NULL;
restore_pblist = NULL;
buffer = NULL;
}

Expand Down Expand Up @@ -490,15 +492,15 @@ asmlinkage int swsusp_save(void)
return -ENOMEM;
}

pagedir_nosave = swsusp_alloc(nr_pages);
if (!pagedir_nosave)
restore_pblist = swsusp_alloc(nr_pages);
if (!restore_pblist)
return -ENOMEM;

/* During allocating of suspend pagedir, new cold pages may appear.
* Kill them.
*/
drain_local_pages();
copy_data_pages(pagedir_nosave);
copy_data_pages(restore_pblist);

/*
* End of critical section. From now on, we can write to memory,
Expand Down Expand Up @@ -580,13 +582,13 @@ int snapshot_read_next(struct snapshot_handle *handle, size_t count)
if (!handle->offset) {
init_header((struct swsusp_info *)buffer);
handle->buffer = buffer;
handle->pbe = pagedir_nosave;
handle->pbe = restore_pblist;
}
if (handle->prev < handle->cur) {
if (handle->cur <= nr_meta_pages) {
handle->pbe = pack_orig_addresses(buffer, handle->pbe);
if (!handle->pbe)
handle->pbe = pagedir_nosave;
handle->pbe = restore_pblist;
} else {
handle->buffer = (void *)handle->pbe->address;
handle->pbe = handle->pbe->next;
Expand Down Expand Up @@ -689,7 +691,7 @@ static int load_header(struct snapshot_handle *handle,
pblist = alloc_pagedir(info->image_pages, GFP_ATOMIC, 0);
if (!pblist)
return -ENOMEM;
pagedir_nosave = pblist;
restore_pblist = pblist;
handle->pbe = pblist;
nr_copy_pages = info->image_pages;
nr_meta_pages = info->pages - info->image_pages - 1;
Expand All @@ -716,7 +718,7 @@ static inline struct pbe *unpack_orig_addresses(unsigned long *buf,

/**
* prepare_image - use metadata contained in the PBE list
* pointed to by pagedir_nosave to mark the pages that will
* pointed to by restore_pblist to mark the pages that will
* be overwritten in the process of restoring the system
* memory state from the image ("unsafe" pages) and allocate
* memory for the image
Expand All @@ -741,7 +743,7 @@ static int prepare_image(struct snapshot_handle *handle)
unsigned int nr_pages = nr_copy_pages;
struct pbe *p, *pblist = NULL;

p = pagedir_nosave;
p = restore_pblist;
error = mark_unsafe_pages(p);
if (!error) {
pblist = alloc_pagedir(nr_pages, GFP_ATOMIC, 1);
Expand Down Expand Up @@ -773,7 +775,7 @@ static int prepare_image(struct snapshot_handle *handle)
}
}
if (!error) {
pagedir_nosave = pblist;
restore_pblist = pblist;
} else {
handle->pbe = NULL;
swsusp_free();
Expand Down Expand Up @@ -858,7 +860,7 @@ int snapshot_write_next(struct snapshot_handle *handle, size_t count)
error = prepare_image(handle);
if (error)
return error;
handle->pbe = pagedir_nosave;
handle->pbe = restore_pblist;
handle->last_pbe = NULL;
handle->buffer = get_buffer(handle);
handle->sync_read = 0;
Expand Down

0 comments on commit d712216

Please sign in to comment.