[GIT pull] timer fixes for 4.8

From: Thomas Gleixner
Date: Sun Sep 04 2016 - 05:23:01 EST


Linus,

please pull the latest timers-urgent-for-linus git tree from:

git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git timers-urgent-for-linus

Two fixlet from the timers departement:

- A fix for scheduler stalls in the tick idle code affecting NOHZ_FULL
kernels

- A trivial compile fix

Thanks,

tglx

------------------>
Daniel Lezcano (1):
clocksource/drivers/atmel-pit: Fix compilation error

Wanpeng Li (1):
tick/nohz: Fix softlockup on scheduler stalls in kvm guest


drivers/clocksource/timer-atmel-pit.c | 1 +
kernel/time/tick-sched.c | 3 ++-
2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/clocksource/timer-atmel-pit.c b/drivers/clocksource/timer-atmel-pit.c
index 3494bc5a21d5..7f0f5b26d8c5 100644
--- a/drivers/clocksource/timer-atmel-pit.c
+++ b/drivers/clocksource/timer-atmel-pit.c
@@ -240,6 +240,7 @@ static int __init at91sam926x_pit_common_init(struct pit_data *data)
static int __init at91sam926x_pit_dt_init(struct device_node *node)
{
struct pit_data *data;
+ int ret;

data = kzalloc(sizeof(*data), GFP_KERNEL);
if (!data)
diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
index 204fdc86863d..2ec7c00228f3 100644
--- a/kernel/time/tick-sched.c
+++ b/kernel/time/tick-sched.c
@@ -908,10 +908,11 @@ static void __tick_nohz_idle_enter(struct tick_sched *ts)
ktime_t now, expires;
int cpu = smp_processor_id();

+ now = tick_nohz_start_idle(ts);
+
if (can_stop_idle_tick(cpu, ts)) {
int was_stopped = ts->tick_stopped;

- now = tick_nohz_start_idle(ts);
ts->idle_calls++;

expires = tick_nohz_stop_sched_tick(ts, now, cpu);