x86/apic: Share common IPI helpers
The 64bit implementations need the same wrappers around __default_send_IPI_shortcut() as 32bit. Move them out of the 32bit section. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://lkml.kernel.org/r/20190722105220.951534451@linutronix.de
This commit is contained in:
Родитель
1f0ad66048
Коммит
dea978632e
|
@ -226,6 +226,21 @@ void default_send_IPI_single(int cpu, int vector)
|
||||||
apic->send_IPI_mask(cpumask_of(cpu), vector);
|
apic->send_IPI_mask(cpumask_of(cpu), vector);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void default_send_IPI_allbutself(int vector)
|
||||||
|
{
|
||||||
|
__default_send_IPI_shortcut(APIC_DEST_ALLBUT, vector);
|
||||||
|
}
|
||||||
|
|
||||||
|
void default_send_IPI_all(int vector)
|
||||||
|
{
|
||||||
|
__default_send_IPI_shortcut(APIC_DEST_ALLINC, vector);
|
||||||
|
}
|
||||||
|
|
||||||
|
void default_send_IPI_self(int vector)
|
||||||
|
{
|
||||||
|
__default_send_IPI_shortcut(APIC_DEST_SELF, vector);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_X86_32
|
#ifdef CONFIG_X86_32
|
||||||
|
|
||||||
void default_send_IPI_mask_sequence_logical(const struct cpumask *mask,
|
void default_send_IPI_mask_sequence_logical(const struct cpumask *mask,
|
||||||
|
@ -285,21 +300,6 @@ void default_send_IPI_mask_logical(const struct cpumask *cpumask, int vector)
|
||||||
local_irq_restore(flags);
|
local_irq_restore(flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
void default_send_IPI_allbutself(int vector)
|
|
||||||
{
|
|
||||||
__default_send_IPI_shortcut(APIC_DEST_ALLBUT, vector);
|
|
||||||
}
|
|
||||||
|
|
||||||
void default_send_IPI_all(int vector)
|
|
||||||
{
|
|
||||||
__default_send_IPI_shortcut(APIC_DEST_ALLINC, vector);
|
|
||||||
}
|
|
||||||
|
|
||||||
void default_send_IPI_self(int vector)
|
|
||||||
{
|
|
||||||
__default_send_IPI_shortcut(APIC_DEST_SELF, vector);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* must come after the send_IPI functions above for inlining */
|
/* must come after the send_IPI functions above for inlining */
|
||||||
static int convert_apicid_to_cpu(int apic_id)
|
static int convert_apicid_to_cpu(int apic_id)
|
||||||
{
|
{
|
||||||
|
|
|
@ -56,12 +56,12 @@ void default_send_IPI_single(int cpu, int vector);
|
||||||
void default_send_IPI_single_phys(int cpu, int vector);
|
void default_send_IPI_single_phys(int cpu, int vector);
|
||||||
void default_send_IPI_mask_sequence_phys(const struct cpumask *mask, int vector);
|
void default_send_IPI_mask_sequence_phys(const struct cpumask *mask, int vector);
|
||||||
void default_send_IPI_mask_allbutself_phys(const struct cpumask *mask, int vector);
|
void default_send_IPI_mask_allbutself_phys(const struct cpumask *mask, int vector);
|
||||||
|
void default_send_IPI_allbutself(int vector);
|
||||||
|
void default_send_IPI_all(int vector);
|
||||||
|
void default_send_IPI_self(int vector);
|
||||||
|
|
||||||
#ifdef CONFIG_X86_32
|
#ifdef CONFIG_X86_32
|
||||||
void default_send_IPI_mask_sequence_logical(const struct cpumask *mask, int vector);
|
void default_send_IPI_mask_sequence_logical(const struct cpumask *mask, int vector);
|
||||||
void default_send_IPI_mask_allbutself_logical(const struct cpumask *mask, int vector);
|
void default_send_IPI_mask_allbutself_logical(const struct cpumask *mask, int vector);
|
||||||
void default_send_IPI_mask_logical(const struct cpumask *mask, int vector);
|
void default_send_IPI_mask_logical(const struct cpumask *mask, int vector);
|
||||||
void default_send_IPI_allbutself(int vector);
|
|
||||||
void default_send_IPI_all(int vector);
|
|
||||||
void default_send_IPI_self(int vector);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Загрузка…
Ссылка в новой задаче