Commit 65fe935d authored by Kees Cook's avatar Kees Cook Committed by Ingo Molnar

x86/KASLR, x86/power: Remove x86 hibernation restrictions

With the following fix:

  70595b479ce1 ("x86/power/64: Fix crash whan the hibernation code passes control to the image kernel")

... there is no longer a problem with hibernation resuming a
KASLR-booted kernel image, so remove the restriction.
Signed-off-by: default avatarKees Cook <keescook@chromium.org>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Baoquan He <bhe@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Len Brown <len.brown@intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Linux PM list <linux-pm@vger.kernel.org>
Cc: Logan Gunthorpe <logang@deltatee.com>
Cc: Pavel Machek <pavel@ucw.cz>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephen Smalley <sds@tycho.nsa.gov>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Yinghai Lu <yinghai@kernel.org>
Cc: linux-doc@vger.kernel.org
Link: http://lkml.kernel.org/r/20160613221002.GA29719@www.outflux.netSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
parent 8d950d2f
...@@ -1803,12 +1803,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted. ...@@ -1803,12 +1803,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
js= [HW,JOY] Analog joystick js= [HW,JOY] Analog joystick
See Documentation/input/joystick.txt. See Documentation/input/joystick.txt.
kaslr/nokaslr [X86] nokaslr [KNL]
Enable/disable kernel and module base offset ASLR When CONFIG_RANDOMIZE_BASE is set, this disables
(Address Space Layout Randomization) if built into kernel and module base offset ASLR (Address Space
the kernel. When CONFIG_HIBERNATION is selected, Layout Randomization).
kASLR is disabled by default. When kASLR is enabled,
hibernation will be disabled.
keepinitrd [HW,ARM] keepinitrd [HW,ARM]
......
...@@ -471,17 +471,10 @@ unsigned char *choose_random_location(unsigned long input, ...@@ -471,17 +471,10 @@ unsigned char *choose_random_location(unsigned long input,
unsigned long choice = output; unsigned long choice = output;
unsigned long random_addr; unsigned long random_addr;
#ifdef CONFIG_HIBERNATION
if (!cmdline_find_option_bool("kaslr")) {
warn("KASLR disabled: 'kaslr' not on cmdline (hibernation selected).");
goto out;
}
#else
if (cmdline_find_option_bool("nokaslr")) { if (cmdline_find_option_bool("nokaslr")) {
warn("KASLR disabled: 'nokaslr' on cmdline."); warn("KASLR disabled: 'nokaslr' on cmdline.");
goto out; goto out;
} }
#endif
boot_params->hdr.loadflags |= KASLR_FLAG; boot_params->hdr.loadflags |= KASLR_FLAG;
......
...@@ -1154,11 +1154,6 @@ static int __init nohibernate_setup(char *str) ...@@ -1154,11 +1154,6 @@ static int __init nohibernate_setup(char *str)
return 1; return 1;
} }
static int __init kaslr_nohibernate_setup(char *str)
{
return nohibernate_setup(str);
}
static int __init page_poison_nohibernate_setup(char *str) static int __init page_poison_nohibernate_setup(char *str)
{ {
#ifdef CONFIG_PAGE_POISONING_ZERO #ifdef CONFIG_PAGE_POISONING_ZERO
...@@ -1182,5 +1177,4 @@ __setup("hibernate=", hibernate_setup); ...@@ -1182,5 +1177,4 @@ __setup("hibernate=", hibernate_setup);
__setup("resumewait", resumewait_setup); __setup("resumewait", resumewait_setup);
__setup("resumedelay=", resumedelay_setup); __setup("resumedelay=", resumedelay_setup);
__setup("nohibernate", nohibernate_setup); __setup("nohibernate", nohibernate_setup);
__setup("kaslr", kaslr_nohibernate_setup);
__setup("page_poison=", page_poison_nohibernate_setup); __setup("page_poison=", page_poison_nohibernate_setup);
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment