aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86_64/kernel/io_apic.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/x86_64/kernel/io_apic.c b/arch/x86_64/kernel/io_apic.c
index b848f4808510..8a9a357875b7 100644
--- a/arch/x86_64/kernel/io_apic.c
+++ b/arch/x86_64/kernel/io_apic.c
@@ -1255,12 +1255,15 @@ static int ioapic_retrigger_irq(unsigned int irq)
1255{ 1255{
1256 cpumask_t mask; 1256 cpumask_t mask;
1257 unsigned vector; 1257 unsigned vector;
1258 unsigned long flags;
1258 1259
1260 spin_lock_irqsave(&vector_lock, flags);
1259 vector = irq_vector[irq]; 1261 vector = irq_vector[irq];
1260 cpus_clear(mask); 1262 cpus_clear(mask);
1261 cpu_set(vector >> 8, mask); 1263 cpu_set(first_cpu(irq_domain[irq]), mask);
1262 1264
1263 send_IPI_mask(mask, vector & 0xff); 1265 send_IPI_mask(mask, vector);
1266 spin_unlock_irqrestore(&vector_lock, flags);
1264 1267
1265 return 1; 1268 return 1;
1266} 1269}