Messages in this thread Patch in this message | | | From | Nigel Cunningham <> | Subject | [Suspend2][ 8/9] [Suspend2] Get pageset1 load addresses. | Date | Tue, 27 Jun 2006 08:34:39 +1000 |
| |
Get the addresses into which the atomically copied memory should loaded prior to restoring it. They need to be locations that won't be overwritten in the process.
Signed-off-by: Nigel Cunningham <nigel@suspend2.net>
kernel/power/pagedir.c | 26 ++++++++++++++++++++++++++ 1 files changed, 26 insertions(+), 0 deletions(-)
diff --git a/kernel/power/pagedir.c b/kernel/power/pagedir.c index ec75e79..daf498a 100644 --- a/kernel/power/pagedir.c +++ b/kernel/power/pagedir.c @@ -308,3 +308,29 @@ void suspend_relocate_if_required(unsign } } +/* get_pageset1_load_addresses + * + * Description: We check here that pagedir & pages it points to won't collide + * with pages where we're going to restore from the loaded pages + * later. + * Returns: Zero on success, one if couldn't find enough pages (shouldn't + * happen). + */ + +int suspend_get_pageset1_load_addresses(void) +{ + int i, result = 0; + void *this; + + for(i=0; i < pagedir1.pageset_size; i++) { + this = (void *) suspend_get_nonconflicting_page(); + if (!this) { + abort_suspend("Error: Ran out of memory seeking locations for reloading data."); + result = 1; + break; + } + SetPagePageset1Copy(virt_to_page(this)); + } + + return result; +} -- Nigel Cunningham nigel at suspend2 dot net - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |