]> Pileus Git - ~andy/linux/blobdiff - kernel/time/tick-broadcast.c
Merge tag 'efi-urgent' into x86/urgent
[~andy/linux] / kernel / time / tick-broadcast.c
index 9532690daaa9edff1fedd01066215ee43884a8a4..98977a57ac72d2a221ed78731b62d67a2e1778fb 100644 (file)
@@ -538,10 +538,10 @@ int tick_resume_broadcast_oneshot(struct clock_event_device *bc)
  * Called from irq_enter() when idle was interrupted to reenable the
  * per cpu device.
  */
-void tick_check_oneshot_broadcast(int cpu)
+void tick_check_oneshot_broadcast_this_cpu(void)
 {
-       if (cpumask_test_cpu(cpu, tick_broadcast_oneshot_mask)) {
-               struct tick_device *td = &per_cpu(tick_cpu_device, cpu);
+       if (cpumask_test_cpu(smp_processor_id(), tick_broadcast_oneshot_mask)) {
+               struct tick_device *td = &__get_cpu_var(tick_cpu_device);
 
                /*
                 * We might be in the middle of switching over from
@@ -756,6 +756,7 @@ out:
 static void tick_broadcast_clear_oneshot(int cpu)
 {
        cpumask_clear_cpu(cpu, tick_broadcast_oneshot_mask);
+       cpumask_clear_cpu(cpu, tick_broadcast_pending_mask);
 }
 
 static void tick_broadcast_init_next_event(struct cpumask *mask,