Browse Source

[PATCH] swsusp: remove wrong code from data_free

The following patch removes some wrong code from the data_free() function
in swsusp.

This function could only be called if there's an error while writing the
suspend image to swap, so it is not triggered easily.  However, if
triggered, it would probably corrupt some memory.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Rafael J. Wysocki 19 years ago
parent
commit
254b54771c
1 changed files with 3 additions and 4 deletions
  1. 3 4
      kernel/power/swsusp.c

+ 3 - 4
kernel/power/swsusp.c

@@ -402,15 +402,14 @@ static int write_page(unsigned long addr, swp_entry_t * loc)
 static void data_free(void)
 static void data_free(void)
 {
 {
 	swp_entry_t entry;
 	swp_entry_t entry;
-	int i;
+	struct pbe * p;
 
 
-	for (i = 0; i < nr_copy_pages; i++) {
-		entry = (pagedir_nosave + i)->swap_address;
+	for_each_pbe(p, pagedir_nosave) {
+		entry = p->swap_address;
 		if (entry.val)
 		if (entry.val)
 			swap_free(entry);
 			swap_free(entry);
 		else
 		else
 			break;
 			break;
-		(pagedir_nosave + i)->swap_address = (swp_entry_t){0};
 	}
 	}
 }
 }