arm64: Kill __smp_cross_call and co
The old IPI registration interface is now unused on arm64, so let's get rid of it. Reviewed-by: Valentin Schneider <valentin.schneider@arm.com> Acked-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Marc Zyngier <maz@kernel.org>
This commit is contained in:
parent
f02147dd02
commit
5cebfd2d47
@ -2,11 +2,9 @@
|
||||
#ifndef __ASM_IRQ_WORK_H
|
||||
#define __ASM_IRQ_WORK_H
|
||||
|
||||
#include <asm/smp.h>
|
||||
|
||||
static inline bool arch_irq_work_has_interrupt(void)
|
||||
{
|
||||
return !!__smp_cross_call;
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif /* __ASM_IRQ_WORK_H */
|
||||
|
@ -60,24 +60,12 @@ struct seq_file;
|
||||
*/
|
||||
extern void show_ipi_list(struct seq_file *p, int prec);
|
||||
|
||||
/*
|
||||
* Called from C code, this handles an IPI.
|
||||
*/
|
||||
extern void handle_IPI(int ipinr, struct pt_regs *regs);
|
||||
|
||||
/*
|
||||
* Discover the set of possible CPUs and determine their
|
||||
* SMP operations.
|
||||
*/
|
||||
extern void smp_init_cpus(void);
|
||||
|
||||
/*
|
||||
* Provide a function to raise an IPI cross call on CPUs in callmap.
|
||||
*/
|
||||
extern void set_smp_cross_call(void (*)(const struct cpumask *, unsigned int));
|
||||
|
||||
extern void (*__smp_cross_call)(const struct cpumask *, unsigned int);
|
||||
|
||||
/*
|
||||
* Register IPI interrupts with the arch SMP code
|
||||
*/
|
||||
|
@ -782,13 +782,6 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
|
||||
}
|
||||
}
|
||||
|
||||
void (*__smp_cross_call)(const struct cpumask *, unsigned int);
|
||||
|
||||
void __init set_smp_cross_call(void (*fn)(const struct cpumask *, unsigned int))
|
||||
{
|
||||
__smp_cross_call = fn;
|
||||
}
|
||||
|
||||
static const char *ipi_types[NR_IPI] __tracepoint_string = {
|
||||
#define S(x,s) [x] = s
|
||||
S(IPI_RESCHEDULE, "Rescheduling interrupts"),
|
||||
@ -800,11 +793,7 @@ static const char *ipi_types[NR_IPI] __tracepoint_string = {
|
||||
S(IPI_WAKEUP, "CPU wake-up interrupts"),
|
||||
};
|
||||
|
||||
static void smp_cross_call(const struct cpumask *target, unsigned int ipinr)
|
||||
{
|
||||
trace_ipi_raise(target, ipi_types[ipinr]);
|
||||
__smp_cross_call(target, ipinr);
|
||||
}
|
||||
static void smp_cross_call(const struct cpumask *target, unsigned int ipinr);
|
||||
|
||||
void show_ipi_list(struct seq_file *p, int prec)
|
||||
{
|
||||
@ -851,8 +840,7 @@ void arch_send_wakeup_ipi_mask(const struct cpumask *mask)
|
||||
#ifdef CONFIG_IRQ_WORK
|
||||
void arch_irq_work_raise(void)
|
||||
{
|
||||
if (__smp_cross_call)
|
||||
smp_cross_call(cpumask_of(smp_processor_id()), IPI_IRQ_WORK);
|
||||
smp_cross_call(cpumask_of(smp_processor_id()), IPI_IRQ_WORK);
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -959,34 +947,23 @@ static void do_handle_IPI(int ipinr)
|
||||
trace_ipi_exit_rcuidle(ipi_types[ipinr]);
|
||||
}
|
||||
|
||||
/* Legacy version, should go away once all irqchips have been converted */
|
||||
void handle_IPI(int ipinr, struct pt_regs *regs)
|
||||
{
|
||||
struct pt_regs *old_regs = set_irq_regs(regs);
|
||||
|
||||
irq_enter();
|
||||
do_handle_IPI(ipinr);
|
||||
irq_exit();
|
||||
|
||||
set_irq_regs(old_regs);
|
||||
}
|
||||
|
||||
static irqreturn_t ipi_handler(int irq, void *data)
|
||||
{
|
||||
do_handle_IPI(irq - ipi_irq_base);
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
static void ipi_send(const struct cpumask *target, unsigned int ipi)
|
||||
static void smp_cross_call(const struct cpumask *target, unsigned int ipinr)
|
||||
{
|
||||
__ipi_send_mask(ipi_desc[ipi], target);
|
||||
trace_ipi_raise(target, ipi_types[ipinr]);
|
||||
__ipi_send_mask(ipi_desc[ipinr], target);
|
||||
}
|
||||
|
||||
static void ipi_setup(int cpu)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (!ipi_irq_base)
|
||||
if (WARN_ON_ONCE(!ipi_irq_base))
|
||||
return;
|
||||
|
||||
for (i = 0; i < nr_ipi; i++)
|
||||
@ -997,7 +974,7 @@ static void ipi_teardown(int cpu)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (!ipi_irq_base)
|
||||
if (WARN_ON_ONCE(!ipi_irq_base))
|
||||
return;
|
||||
|
||||
for (i = 0; i < nr_ipi; i++)
|
||||
@ -1023,7 +1000,6 @@ void __init set_smp_ipi_range(int ipi_base, int n)
|
||||
}
|
||||
|
||||
ipi_irq_base = ipi_base;
|
||||
__smp_cross_call = ipi_send;
|
||||
|
||||
/* Setup the boot CPU immediately */
|
||||
ipi_setup(smp_processor_id());
|
||||
|
Loading…
x
Reference in New Issue
Block a user