[PATCH] swsusp: low level interface
Introduce the low level interface that can be used for handling the snapshot of the system memory by the in-kernel swap-writing/reading code of swsusp and the userland interface code (to be introduced shortly). Also change the way in which swsusp records the allocated swap pages and, consequently, simplifies the in-kernel swap-writing/reading code (this is necessary for the userland interface too). To this end, it introduces two helper functions in mm/swapfile.c, so that the swsusp code does not refer directly to the swap internals. Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Acked-by: Pavel Machek <pavel@ucw.cz> Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:

committed by
Linus Torvalds

parent
2b322ce210
commit
f577eb30af
@@ -26,9 +26,9 @@ extern suspend_disk_method_t pm_disk_mode;
|
||||
|
||||
extern int swsusp_shrink_memory(void);
|
||||
extern int swsusp_suspend(void);
|
||||
extern int swsusp_write(struct pbe *pblist, unsigned int nr_pages);
|
||||
extern int swsusp_write(void);
|
||||
extern int swsusp_check(void);
|
||||
extern int swsusp_read(struct pbe **pblist_ptr);
|
||||
extern int swsusp_read(void);
|
||||
extern void swsusp_close(void);
|
||||
extern int swsusp_resume(void);
|
||||
|
||||
@@ -70,10 +70,6 @@ static void power_down(suspend_disk_method_t mode)
|
||||
while(1);
|
||||
}
|
||||
|
||||
|
||||
static int in_suspend __nosavedata = 0;
|
||||
|
||||
|
||||
static inline void platform_finish(void)
|
||||
{
|
||||
if (pm_disk_mode == PM_DISK_PLATFORM) {
|
||||
@@ -145,7 +141,7 @@ int pm_suspend_disk(void)
|
||||
if (in_suspend) {
|
||||
device_resume();
|
||||
pr_debug("PM: writing image.\n");
|
||||
error = swsusp_write(pagedir_nosave, nr_copy_pages);
|
||||
error = swsusp_write();
|
||||
if (!error)
|
||||
power_down(pm_disk_mode);
|
||||
else {
|
||||
@@ -216,7 +212,7 @@ static int software_resume(void)
|
||||
|
||||
pr_debug("PM: Reading swsusp image.\n");
|
||||
|
||||
if ((error = swsusp_read(&pagedir_nosave))) {
|
||||
if ((error = swsusp_read())) {
|
||||
swsusp_free();
|
||||
goto Thaw;
|
||||
}
|
||||
|
Reference in New Issue
Block a user