highmem handling again
Subsystems (2)
Hi!
I agree that swsusp_free is not the right place to restore_highmem(), but I can't find "right" place to do it... Best I could come up is with is:
It did not work at the end of swsusp_resume, or at the end of swsusp_restore, IIRC.
Pavel
kernel/power/disk.c +4 -1
@@ -184,8 +187,11 @@ error =power_down (pm_disk_mode);pr_debug ("PM: Power down failed.\n" ); } - }else + }else { +extern int restore_highmem (void ); +restore_highmem ();pr_debug ("PM: Image restored successfully.\n" ); + }swsusp_free (); Done:finish ();
kernel/power/swsusp.c +1 -1
@@ -523,7 +523,7 @@return 0 ; } -static int restore_highmem (void ) +int restore_highmem (void ) {while (highmem_copy) {struct highmem_page *save = highmem_copy;
Signature · 2 lines
People were complaining that M$ turns users into beta-testers... ...jr ghea gurz vagb qrirybcref, naq gurl frrz gb yvxr vg gung jnl!
kernel/power/disk.c line 192
Quoted 5 lines · Pavel Machek
kernel/power/disk.c +3
-1} - }else + }else { +extern int restore_highmem (void ); +restore_highmem ();
Prototype in .h files...
Sam
Hi!
Quoted 7 lines
kernel/power/disk.c line 192
Quoted 5 lines
kernel/power/disk.c +3
-1} - }else + }else { +extern int restore_highmem (void ); +restore_highmem ();Prototype in .h files...
I know, this is proof of concept, only. I do not want another cross-file reference.
Pavel
Signature · 2 lines
People were complaining that M$ turns users into beta-testers... ...jr ghea gurz vagb qrirybcref, naq gurl frrz gb yvxr vg gung jnl!
Hi.
Quoted 8 lines · Pavel Machek
Hi!
I agree that
swsusp_freeis not the right place torestore_highmem(), but I can't find "right" place to do it... Best I could come up is with is:It did not work at the end of
swsusp_resume, or at the end ofswsusp_restore, IIRC.
I'm doing: copy back lowmem, restore local processor context, flush local tlb, restore highmem, allow other processors to restore their processor contexts and flush local tlbs. It works fine here.
Nigel
Hi!
Quoted 10 lines
Quoted 6 lines
I agree that
swsusp_freeis not the right place torestore_highmem(), but I can't find "right" place to do it... Best I could come up is with is:It did not work at the end of
swsusp_resume, or at the end ofswsusp_restore, IIRC.I'm doing: copy back lowmem, restore local processor context, flush local tlb, restore highmem, allow other processors to restore their processor contexts and flush local tlbs. It works fine here.
Yes, I'd like to do the same, I just have problems finding that place in new structure.
Pavel
Signature · 2 lines
People were complaining that M$ turns users into beta-testers... ...jr ghea gurz vagb qrirybcref, naq gurl frrz gb yvxr vg gung jnl!