mirror of
https://github.com/torvalds/linux.git
synced 2024-12-02 00:51:44 +00:00
MIPS: Netlogic: SMP fixes for XLR/XLS platform code.
Fix few issues in the Netlogic code: - Use handle_percpu_irq to handle per-cpu interrupts - Remove unused function nlm_common_ipi_handler() - Call scheduler_ipi() on SMP_RESCHEDULE_YOURSELF - Enable interrupts in nlm_smp_finish() Signed-off-by: Jayachandran C <jayachandranc@netlogicmicro.com> Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/2460/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
1544129da2
commit
39263eeb44
@ -209,7 +209,7 @@ void __init init_xlr_irqs(void)
|
|||||||
irq_set_chip_and_handler(i, &xlr_pic, handle_level_irq);
|
irq_set_chip_and_handler(i, &xlr_pic, handle_level_irq);
|
||||||
else
|
else
|
||||||
irq_set_chip_and_handler(i, &nlm_cpu_intr,
|
irq_set_chip_and_handler(i, &nlm_cpu_intr,
|
||||||
handle_level_irq);
|
handle_percpu_irq);
|
||||||
}
|
}
|
||||||
#ifdef CONFIG_SMP
|
#ifdef CONFIG_SMP
|
||||||
irq_set_chip_and_handler(IRQ_IPI_SMP_FUNCTION, &nlm_cpu_intr,
|
irq_set_chip_and_handler(IRQ_IPI_SMP_FUNCTION, &nlm_cpu_intr,
|
||||||
|
@ -87,17 +87,7 @@ void nlm_smp_function_ipi_handler(unsigned int irq, struct irq_desc *desc)
|
|||||||
/* IRQ_IPI_SMP_RESCHEDULE handler */
|
/* IRQ_IPI_SMP_RESCHEDULE handler */
|
||||||
void nlm_smp_resched_ipi_handler(unsigned int irq, struct irq_desc *desc)
|
void nlm_smp_resched_ipi_handler(unsigned int irq, struct irq_desc *desc)
|
||||||
{
|
{
|
||||||
set_need_resched();
|
scheduler_ipi();
|
||||||
}
|
|
||||||
|
|
||||||
void nlm_common_ipi_handler(int irq, struct pt_regs *regs)
|
|
||||||
{
|
|
||||||
if (irq == IRQ_IPI_SMP_FUNCTION) {
|
|
||||||
smp_call_function_interrupt();
|
|
||||||
} else {
|
|
||||||
/* Announce that we are for reschduling */
|
|
||||||
set_need_resched();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -122,6 +112,7 @@ void nlm_smp_finish(void)
|
|||||||
#ifdef notyet
|
#ifdef notyet
|
||||||
nlm_common_msgring_cpu_init();
|
nlm_common_msgring_cpu_init();
|
||||||
#endif
|
#endif
|
||||||
|
local_irq_enable();
|
||||||
}
|
}
|
||||||
|
|
||||||
void nlm_cpus_done(void)
|
void nlm_cpus_done(void)
|
||||||
|
Loading…
Reference in New Issue
Block a user