diff options
Diffstat (limited to 'main/linux-grsec/intel_idle.patch')
-rw-r--r-- | main/linux-grsec/intel_idle.patch | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/main/linux-grsec/intel_idle.patch b/main/linux-grsec/intel_idle.patch new file mode 100644 index 0000000000..4cc4dd6800 --- /dev/null +++ b/main/linux-grsec/intel_idle.patch @@ -0,0 +1,34 @@ +From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> +Date: Thu, 16 Aug 2012 20:06:55 +0000 (+0200) +Subject: intel_idle: Check cpu_idle_get_driver() for NULL before dereferencing it. +X-Git-Tag: v3.6-rc3~33^2 +X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux.git;a=commitdiff_plain;h=3735d524da64b70b41c764359da36f88aded3610 + +intel_idle: Check cpu_idle_get_driver() for NULL before dereferencing it. + +If the machine is booted without any cpu_idle driver set +(b/c disable_cpuidle() has been called) we should follow +other users of cpu_idle API and check the return value +for NULL before using it. + +Reported-and-tested-by: Mark van Dijk <mark@internecto.net> +Suggested-by: Jan Beulich <JBeulich@suse.com> +Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> +Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> +--- + +diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c +index f559088..e872617 100644 +--- a/drivers/idle/intel_idle.c ++++ b/drivers/idle/intel_idle.c +@@ -606,8 +606,9 @@ static int __init intel_idle_init(void) + intel_idle_cpuidle_driver_init(); + retval = cpuidle_register_driver(&intel_idle_driver); + if (retval) { ++ struct cpuidle_driver *drv = cpuidle_get_driver(); + printk(KERN_DEBUG PREFIX "intel_idle yielding to %s", +- cpuidle_get_driver()->name); ++ drv ? drv->name : "none"); + return retval; + } + |