Blob Blame History Raw
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 11 Oct 2017 10:23:00 +0200
Subject: time/hrtimer: use a MONOTIC clock for "relative" REALTIME sleep
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git
Git-commit: 8329dbf165019640d7b545dbef6ceac18d25abc0
Patch-mainline: Queued in subsystem maintainer repository
References: SLE12 Realtime Extension

clock_nanosleep(CLOCK_REALTIME, ) with a relative delay/time should not
be effected by clock_settime(CLOCK_REALTIME,) thus we need to use
CLOCK_MONOTONIC instead. This is already done for the clock itself and
for the SOFT-irq based clock but was forgotten for the HARD-irq clock.

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Mike Galbraith <mgalbraith@suse.de>
---
 kernel/time/hrtimer.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
@@ -1258,6 +1258,8 @@ static void __hrtimer_init(struct hrtime
 			clock_id = CLOCK_MONOTONIC;
 		else if (clock_id == CLOCK_REALTIME_SOFT)
 			clock_id = CLOCK_MONOTONIC_SOFT;
+		else if (clock_id == CLOCK_REALTIME_HARD)
+			clock_id = CLOCK_MONOTONIC_HARD;
 	}
 
 	base = hrtimer_clockid_to_base(clock_id);