Loading arch/alpha/kernel/smp.c +1 −2 Original line number Diff line number Diff line Loading @@ -585,8 +585,7 @@ handle_ipi(struct pt_regs *regs) switch (which) { case IPI_RESCHEDULE: /* Reschedule callback. Everything to be done is done by the interrupt return path. */ scheduler_ipi(); break; case IPI_CALL_FUNC: Loading arch/arm/kernel/smp.c +1 −4 Original line number Diff line number Diff line Loading @@ -560,10 +560,7 @@ asmlinkage void __exception_irq_entry do_IPI(int ipinr, struct pt_regs *regs) break; case IPI_RESCHEDULE: /* * nothing more to do - eveything is * done on the interrupt return path */ scheduler_ipi(); break; case IPI_CALL_FUNC: Loading arch/blackfin/mach-common/smp.c +3 −0 Original line number Diff line number Diff line Loading @@ -177,6 +177,9 @@ static irqreturn_t ipi_handler_int1(int irq, void *dev_instance) while (msg_queue->count) { msg = &msg_queue->ipi_message[msg_queue->head]; switch (msg->type) { case BFIN_IPI_RESCHEDULE: scheduler_ipi(); break; case BFIN_IPI_CALL_FUNC: spin_unlock_irqrestore(&msg_queue->lock, flags); ipi_call_function(cpu, msg); Loading arch/cris/arch-v32/kernel/smp.c +8 −5 Original line number Diff line number Diff line Loading @@ -342,6 +342,9 @@ irqreturn_t crisv32_ipi_interrupt(int irq, void *dev_id) ipi = REG_RD(intr_vect, irq_regs[smp_processor_id()], rw_ipi); if (ipi.vector & IPI_SCHEDULE) { scheduler_ipi(); } if (ipi.vector & IPI_CALL) { func(info); } Loading arch/ia64/kernel/irq_ia64.c +2 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ #include <linux/irq.h> #include <linux/ratelimit.h> #include <linux/acpi.h> #include <linux/sched.h> #include <asm/delay.h> #include <asm/intrinsics.h> Loading Loading @@ -496,6 +497,7 @@ ia64_handle_irq (ia64_vector vector, struct pt_regs *regs) smp_local_flush_tlb(); kstat_incr_irqs_this_cpu(irq, desc); } else if (unlikely(IS_RESCHEDULE(vector))) { scheduler_ipi(); kstat_incr_irqs_this_cpu(irq, desc); } else { ia64_setreg(_IA64_REG_CR_TPR, vector); Loading Loading
arch/alpha/kernel/smp.c +1 −2 Original line number Diff line number Diff line Loading @@ -585,8 +585,7 @@ handle_ipi(struct pt_regs *regs) switch (which) { case IPI_RESCHEDULE: /* Reschedule callback. Everything to be done is done by the interrupt return path. */ scheduler_ipi(); break; case IPI_CALL_FUNC: Loading
arch/arm/kernel/smp.c +1 −4 Original line number Diff line number Diff line Loading @@ -560,10 +560,7 @@ asmlinkage void __exception_irq_entry do_IPI(int ipinr, struct pt_regs *regs) break; case IPI_RESCHEDULE: /* * nothing more to do - eveything is * done on the interrupt return path */ scheduler_ipi(); break; case IPI_CALL_FUNC: Loading
arch/blackfin/mach-common/smp.c +3 −0 Original line number Diff line number Diff line Loading @@ -177,6 +177,9 @@ static irqreturn_t ipi_handler_int1(int irq, void *dev_instance) while (msg_queue->count) { msg = &msg_queue->ipi_message[msg_queue->head]; switch (msg->type) { case BFIN_IPI_RESCHEDULE: scheduler_ipi(); break; case BFIN_IPI_CALL_FUNC: spin_unlock_irqrestore(&msg_queue->lock, flags); ipi_call_function(cpu, msg); Loading
arch/cris/arch-v32/kernel/smp.c +8 −5 Original line number Diff line number Diff line Loading @@ -342,6 +342,9 @@ irqreturn_t crisv32_ipi_interrupt(int irq, void *dev_id) ipi = REG_RD(intr_vect, irq_regs[smp_processor_id()], rw_ipi); if (ipi.vector & IPI_SCHEDULE) { scheduler_ipi(); } if (ipi.vector & IPI_CALL) { func(info); } Loading
arch/ia64/kernel/irq_ia64.c +2 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ #include <linux/irq.h> #include <linux/ratelimit.h> #include <linux/acpi.h> #include <linux/sched.h> #include <asm/delay.h> #include <asm/intrinsics.h> Loading Loading @@ -496,6 +497,7 @@ ia64_handle_irq (ia64_vector vector, struct pt_regs *regs) smp_local_flush_tlb(); kstat_incr_irqs_this_cpu(irq, desc); } else if (unlikely(IS_RESCHEDULE(vector))) { scheduler_ipi(); kstat_incr_irqs_this_cpu(irq, desc); } else { ia64_setreg(_IA64_REG_CR_TPR, vector); Loading