diff --git a/debian/changelog b/debian/changelog index b9edbf17b..b9dc99e2d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,7 @@ linux (4.4~rc6-1~exp2) UNRELEASED; urgency=medium * [rt] Update to 4.4-rc6-rt1 and re-enable + * [rt] Fix build error in kernel/time/hrtimer.c -- Ben Hutchings Thu, 24 Dec 2015 21:28:51 +0000 diff --git a/debian/patches/features/all/rt/hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch b/debian/patches/features/all/rt/hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch index b7b3e31e1..1e653d94d 100644 --- a/debian/patches/features/all/rt/hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch +++ b/debian/patches/features/all/rt/hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch @@ -11,7 +11,7 @@ delivery problem for real. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar - +[bwh: Adjust context to apply after fixed latency-hist.patch] --- include/linux/hrtimer.h | 4 + kernel/sched/core.c | 1 @@ -121,7 +121,7 @@ Signed-off-by: Ingo Molnar cpu_base->running == timer) return true; -@@ -1292,10 +1296,111 @@ static void __run_hrtimer(struct hrtimer +@@ -1292,12 +1296,113 @@ static void __run_hrtimer(struct hrtimer cpu_base->running = NULL; } @@ -225,6 +225,8 @@ Signed-off-by: Ingo Molnar +#endif + + + static enum hrtimer_restart hrtimer_wakeup(struct hrtimer *timer); + static void __hrtimer_run_queues(struct hrtimer_cpu_base *cpu_base, ktime_t now) { struct hrtimer_clock_base *base = cpu_base->clock_base; @@ -233,7 +235,7 @@ Signed-off-by: Ingo Molnar for (; active; base++, active >>= 1) { struct timerqueue_node *node; -@@ -1335,15 +1440,20 @@ static void __hrtimer_run_queues(struct +@@ -1337,9 +1442,14 @@ static void __hrtimer_run_queues(struct if (basenow.tv64 < hrtimer_get_softexpires_tv64(timer)) break; @@ -248,15 +250,7 @@ Signed-off-by: Ingo Molnar + raise_softirq_irqoff(HRTIMER_SOFTIRQ); } --#ifdef CONFIG_HIGH_RES_TIMERS -- - static enum hrtimer_restart hrtimer_wakeup(struct hrtimer *timer); - -+#ifdef CONFIG_HIGH_RES_TIMERS -+ - /* - * High resolution timer interrupt - * Called with interrupts disabled + #ifdef CONFIG_HIGH_RES_TIMERS @@ -1481,8 +1591,6 @@ void hrtimer_run_queues(void) now = hrtimer_update_base(cpu_base); __hrtimer_run_queues(cpu_base, now); diff --git a/debian/patches/features/all/rt/latency-hist.patch b/debian/patches/features/all/rt/latency-hist.patch index 39f454ba5..88a5464c2 100644 --- a/debian/patches/features/all/rt/latency-hist.patch +++ b/debian/patches/features/all/rt/latency-hist.patch @@ -12,7 +12,7 @@ filesystem. For details please consult Documentation/trace/histograms.txt. Signed-off-by: Carsten Emde Signed-off-by: Thomas Gleixner - +[bwh: Move up prototype of hrtimer_wakeup() so this actually compiles] --- Documentation/trace/histograms.txt | 186 +++++ include/linux/hrtimer.h | 3 @@ -376,7 +376,16 @@ Signed-off-by: Thomas Gleixner leftmost = enqueue_hrtimer(timer, new_base); if (!leftmost) goto unlock; -@@ -1275,6 +1285,15 @@ static void __hrtimer_run_queues(struct +@@ -1256,6 +1266,8 @@ static void __run_hrtimer(struct hrtimer + cpu_base->running = NULL; + } + ++static enum hrtimer_restart hrtimer_wakeup(struct hrtimer *timer); ++ + static void __hrtimer_run_queues(struct hrtimer_cpu_base *cpu_base, ktime_t now) + { + struct hrtimer_clock_base *base = cpu_base->clock_base; +@@ -1275,6 +1287,15 @@ static void __hrtimer_run_queues(struct timer = container_of(node, struct hrtimer, node); @@ -392,15 +401,6 @@ Signed-off-by: Thomas Gleixner /* * The immediate goal for using the softexpires is * minimizing wakeups, not running timers at the -@@ -1297,6 +1316,8 @@ static void __hrtimer_run_queues(struct - - #ifdef CONFIG_HIGH_RES_TIMERS - -+static enum hrtimer_restart hrtimer_wakeup(struct hrtimer *timer); -+ - /* - * High resolution timer interrupt - * Called with interrupts disabled --- a/kernel/trace/Kconfig +++ b/kernel/trace/Kconfig @@ -187,6 +187,24 @@ config IRQSOFF_TRACER @@ -1784,7 +1784,7 @@ Signed-off-by: Thomas Gleixner if (!preempt_trace() && irq_trace()) stop_critical_timing(CALLER_ADDR0, caller_addr); } -@@ -490,6 +498,7 @@ EXPORT_SYMBOL(trace_hardirqs_on_caller); +@@ -490,6 +498,7 @@ __visible void trace_hardirqs_off_caller { if (!preempt_trace() && irq_trace()) start_critical_timing(CALLER_ADDR0, caller_addr);