From: "Rafael J. Wysocki" Due to the wrong value passed to load_image() in swap.c the writing progress meter could run over 100%. Fix it. Signed-off-by: Rafael J. Wysocki Cc: Pavel Machek Signed-off-by: Andrew Morton --- kernel/power/swap.c | 7 ++----- 1 files changed, 2 insertions(+), 5 deletions(-) diff -puN kernel/power/swap.c~swsusp-separate-swap-writing-reading-code-rev-2-fix-writing-progress-meter kernel/power/swap.c --- devel/kernel/power/swap.c~swsusp-separate-swap-writing-reading-code-rev-2-fix-writing-progress-meter 2006-02-15 20:49:18.000000000 -0800 +++ devel-akpm/kernel/power/swap.c 2006-02-15 20:49:18.000000000 -0800 @@ -467,7 +467,6 @@ int swsusp_read(void) struct swap_map_handle handle; struct snapshot_handle snapshot; struct swsusp_info *header; - unsigned int nr_pages; if (IS_ERR(resume_bdev)) { pr_debug("swsusp: block device not initialised\n"); @@ -482,10 +481,8 @@ int swsusp_read(void) error = get_swap_reader(&handle, swsusp_header.image); if (!error) error = swap_read_page(&handle, header); - if (!error) { - nr_pages = header->image_pages; - error = load_image(&handle, &snapshot, nr_pages); - } + if (!error) + error = load_image(&handle, &snapshot, header->pages - 1); release_swap_reader(&handle); blkdev_put(resume_bdev); _