Browse Source

Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull timer fixes from Thomas Gleixner:
 "Two fixlet from the timers departement:

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

   - A trivial compile fix"

* 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  tick/nohz: Fix softlockup on scheduler stalls in kvm guest
  clocksource/drivers/atmel-pit: Fix compilation error
Linus Torvalds 9 years ago
parent
commit
1c3333600b
2 changed files with 3 additions and 1 deletions
  1. 1 0
      drivers/clocksource/timer-atmel-pit.c
  2. 2 1
      kernel/time/tick-sched.c

+ 1 - 0
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)
 static int __init at91sam926x_pit_dt_init(struct device_node *node)
 {
 {
 	struct pit_data *data;
 	struct pit_data *data;
+	int ret;
 
 
 	data = kzalloc(sizeof(*data), GFP_KERNEL);
 	data = kzalloc(sizeof(*data), GFP_KERNEL);
 	if (!data)
 	if (!data)

+ 2 - 1
kernel/time/tick-sched.c

@@ -908,10 +908,11 @@ static void __tick_nohz_idle_enter(struct tick_sched *ts)
 	ktime_t now, expires;
 	ktime_t now, expires;
 	int cpu = smp_processor_id();
 	int cpu = smp_processor_id();
 
 
+	now = tick_nohz_start_idle(ts);
+
 	if (can_stop_idle_tick(cpu, ts)) {
 	if (can_stop_idle_tick(cpu, ts)) {
 		int was_stopped = ts->tick_stopped;
 		int was_stopped = ts->tick_stopped;
 
 
-		now = tick_nohz_start_idle(ts);
 		ts->idle_calls++;
 		ts->idle_calls++;
 
 
 		expires = tick_nohz_stop_sched_tick(ts, now, cpu);
 		expires = tick_nohz_stop_sched_tick(ts, now, cpu);