History

rangetimer: fix BUG_ON reported by Ingo

There's a small race/chance that, while hrtimers are enabled globally, they're later not enabled when we're calling the hrtimer_interrupt() function, which then BUG_ON()'s for that. This patch closes that race/gap.

Arjan van de Ven committed 18 years ago

Commit 030aebd1 parent 2075eb81 file · +5 −1Browse files

Showing the changes to kernel/hrtimer.c (1 of 1 file). Show all

Unified · Split

kernel/hrtimer.c+5−1
@@ -1395,11 +1395,15 @@ void hrtimer_peek_ahead_timers(void) · 1394 unmodified lines
1395 unsigned long flags;1395 unsigned long flags;
1396 struct tick_device *td;1396 struct tick_device *td;
1397 struct clock_event_device *dev;1397 struct clock_event_device *dev;
1398 1398 struct hrtimer_cpu_base *cpu_base;
1399 if (hrtimer_hres_active())1399 if (hrtimer_hres_active())
1400 return;1400 return;
1401 1401
1402 local_irq_save(flags);1402 local_irq_save(flags);
1403 cpu_base = &__get_cpu_var(hrtimer_bases);
1404 if (!cpu_base->hres_active)
1405 goto out;
1406
1403 td = &__get_cpu_var(tick_cpu_device);1407 td = &__get_cpu_var(tick_cpu_device);
1404 if (!td)1408 if (!td)
1405 goto out;1409 goto out;