[patch 03/14] x86/apic: Implement default single target IPI function

From: Thomas Gleixner
Date: Wed Nov 04 2015 - 17:59:14 EST


apic_physflat and bigsmp_apic can share that implementation.

Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
---
arch/x86/include/asm/ipi.h | 1 +
arch/x86/kernel/apic/ipi.c | 10 ++++++++++
2 files changed, 11 insertions(+)

Index: linux/arch/x86/include/asm/ipi.h
===================================================================
--- linux.orig/arch/x86/include/asm/ipi.h
+++ linux/arch/x86/include/asm/ipi.h
@@ -119,6 +119,7 @@ static inline void
native_apic_mem_write(APIC_ICR, cfg);
}

+extern void default_send_IPI_single_phys(int cpu, int vector);
extern void default_send_IPI_mask_sequence_phys(const struct cpumask *mask,
int vector);
extern void default_send_IPI_mask_allbutself_phys(const struct cpumask *mask,
Index: linux/arch/x86/kernel/apic/ipi.c
===================================================================
--- linux.orig/arch/x86/kernel/apic/ipi.c
+++ linux/arch/x86/kernel/apic/ipi.c
@@ -18,6 +18,16 @@
#include <asm/proto.h>
#include <asm/ipi.h>

+void default_send_IPI_single_phys(int cpu, int vector)
+{
+ unsigned long flags;
+
+ local_irq_save(flags);
+ __default_send_IPI_dest_field(per_cpu(x86_cpu_to_apicid, cpu),
+ vector, APIC_DEST_PHYSICAL);
+ local_irq_restore(flags);
+}
+
void default_send_IPI_mask_sequence_phys(const struct cpumask *mask, int vector)
{
unsigned long query_cpu;


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/