summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuenter Roeck <linux@roeck-us.net>2015-08-22 10:10:47 +0200
committerThomas Gleixner <tglx@linutronix.de>2015-08-22 10:57:50 +0200
commit85e1cd6e769dfc84995270d0a4838021fcb8602d (patch)
treeb2b2efa20c71e9e930f13765d0c976c5e619400b
parentMerge branch 'fortglx/4.3/time' of https://git.linaro.org/people/john.stultz/... (diff)
downloadlinux-85e1cd6e769dfc84995270d0a4838021fcb8602d.tar.xz
linux-85e1cd6e769dfc84995270d0a4838021fcb8602d.zip
hrtimer: Handle failure of tick_init_highres() gracefully
Commit 75e3b37d0598 ("hrtimer: Drop return code of hrtimer_switch_to_hres()") drops the return code of hrtimer_switch_to_hres(). While doing so, it also drops the return statement itself on failure. This may cause a system hang. Seen when running arm:multi_v7_defconfig in qemu with devicetree file vexpress-v2p-ca9. Fixes: 75e3b37d0598 ("hrtimer: Drop return code of hrtimer_switch_to_hres()") Cc: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Guenter Roeck <linux@roeck-us.net> Link: http://lkml.kernel.org/r/1440231047-16256-1-git-send-email-linux@roeck-us.net Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-rw-r--r--kernel/time/hrtimer.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
index 5c4fe50e47d3..457a373e2181 100644
--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
@@ -695,6 +695,7 @@ static void hrtimer_switch_to_hres(void)
if (tick_init_highres()) {
printk(KERN_WARNING "Could not switch to high resolution "
"mode on CPU %d\n", base->cpu);
+ return;
}
base->hres_active = 1;
hrtimer_resolution = HIGH_RES_NSEC;