Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 90d3ac15 authored by David S. Miller's avatar David S. Miller
Browse files

Merge commit '317f3941'



Conflicts:
	arch/sparc/kernel/smp_32.c

With merge conflict help from Daniel Hellstrom.

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 9fafbd80 317f3941
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -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:
+1 −4
Original line number Diff line number Diff line
@@ -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:
+3 −0
Original line number Diff line number Diff line
@@ -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);
+8 −5
Original line number Diff line number Diff line
@@ -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);
	}
+2 −0
Original line number Diff line number Diff line
@@ -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>
@@ -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