diff options
author | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2016-07-10 03:12:10 +0300 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2016-07-10 03:12:10 +0300 |
commit | 4c0b6c10fbaf0c82efe2a7ba6c236c633d4f2ed7 (patch) | |
tree | ba2727168486504a256694aaa5f549bac1aa92eb /kernel/power/hibernate.c | |
parent | d5f32af3100165cbd625855bd155b3aa9bd87ebf (diff) | |
download | linux-4c0b6c10fbaf0c82efe2a7ba6c236c633d4f2ed7.tar.xz |
PM / hibernate: Image data protection during restoration
Make it possible to protect all pages holding image data during
hibernate image restoration by setting them read-only (so as to
catch attempts to write to those pages after image data have been
stored in them).
This adds overhead to image restoration code (it may cause large
page mappings to be split as a result of page flags changes) and
the errors it protects against should never happen in theory, so
the feature is only active after passing hibernate=protect_image
to the command line of the restore kernel.
Also it only is built if CONFIG_DEBUG_RODATA is set.
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'kernel/power/hibernate.c')
-rw-r--r-- | kernel/power/hibernate.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c index b00f270d328e..51441d87f0b6 100644 --- a/kernel/power/hibernate.c +++ b/kernel/power/hibernate.c @@ -1126,6 +1126,9 @@ static int __init hibernate_setup(char *str) } else if (!strncmp(str, "no", 2)) { noresume = 1; nohibernate = 1; + } else if (IS_ENABLED(CONFIG_DEBUG_RODATA) + && !strncmp(str, "protect_image", 13)) { + enable_restore_image_protection(); } return 1; } |