aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86_64/kernel/genapic_flat.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86_64/kernel/genapic_flat.c')
-rw-r--r--arch/x86_64/kernel/genapic_flat.c23
1 files changed, 1 insertions, 22 deletions
diff --git a/arch/x86_64/kernel/genapic_flat.c b/arch/x86_64/kernel/genapic_flat.c
index 9e0a552f0e4a..01d3939e3a9c 100644
--- a/arch/x86_64/kernel/genapic_flat.c
+++ b/arch/x86_64/kernel/genapic_flat.c
@@ -61,31 +61,10 @@ static void flat_init_apic_ldr(void)
61static void flat_send_IPI_mask(cpumask_t cpumask, int vector) 61static void flat_send_IPI_mask(cpumask_t cpumask, int vector)
62{ 62{
63 unsigned long mask = cpus_addr(cpumask)[0]; 63 unsigned long mask = cpus_addr(cpumask)[0];
64 unsigned long cfg;
65 unsigned long flags; 64 unsigned long flags;
66 65
67 local_irq_save(flags); 66 local_irq_save(flags);
68 67 __send_IPI_dest_field(mask, vector, APIC_DEST_LOGICAL);
69 /*
70 * Wait for idle.
71 */
72 apic_wait_icr_idle();
73
74 /*
75 * prepare target chip field
76 */
77 cfg = __prepare_ICR2(mask);
78 apic_write(APIC_ICR2, cfg);
79
80 /*
81 * program the ICR
82 */
83 cfg = __prepare_ICR(0, vector, APIC_DEST_LOGICAL);
84
85 /*
86 * Send the IPI. The write to APIC_ICR fires this off.
87 */
88 apic_write(APIC_ICR, cfg);
89 local_irq_restore(flags); 68 local_irq_restore(flags);
90} 69}
91 70