diff options
Diffstat (limited to 'arch/x86_64/kernel/apic.c')
-rw-r--r-- | arch/x86_64/kernel/apic.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/x86_64/kernel/apic.c b/arch/x86_64/kernel/apic.c index 46acf4f2f1ec..bd3e45d47c37 100644 --- a/arch/x86_64/kernel/apic.c +++ b/arch/x86_64/kernel/apic.c | |||
@@ -934,9 +934,17 @@ EXPORT_SYMBOL(switch_APIC_timer_to_ipi); | |||
934 | 934 | ||
935 | void smp_send_timer_broadcast_ipi(void) | 935 | void smp_send_timer_broadcast_ipi(void) |
936 | { | 936 | { |
937 | int cpu = smp_processor_id(); | ||
937 | cpumask_t mask; | 938 | cpumask_t mask; |
938 | 939 | ||
939 | cpus_and(mask, cpu_online_map, timer_interrupt_broadcast_ipi_mask); | 940 | cpus_and(mask, cpu_online_map, timer_interrupt_broadcast_ipi_mask); |
941 | |||
942 | if (cpu_isset(cpu, mask)) { | ||
943 | cpu_clear(cpu, mask); | ||
944 | add_pda(apic_timer_irqs, 1); | ||
945 | smp_local_timer_interrupt(); | ||
946 | } | ||
947 | |||
940 | if (!cpus_empty(mask)) { | 948 | if (!cpus_empty(mask)) { |
941 | send_IPI_mask(mask, LOCAL_TIMER_VECTOR); | 949 | send_IPI_mask(mask, LOCAL_TIMER_VECTOR); |
942 | } | 950 | } |