summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Hogan <james.hogan@imgtec.com>2013-11-25 11:14:50 +0000
committerJames Hogan <james.hogan@imgtec.com>2013-11-29 14:52:13 +0000
commit5a25f7bb5aa1b2f876d9df81c44b516e015022f8 (patch)
tree6554d692afb098239cde53b41278c15179df4825
parentcdf8d75818e3cd30746d38f5fbcdb3745fd267a3 (diff)
metag: smp: don't set irq regs in do_IPI()
Since commit f6b30d32d242 (metag: kick: add missing irq_enter/exit to kick_handler()), the main kick_handler() function deals with setting and restoring the irq registers pointer. Therefore do_IPI() which is called indirectly from kick_handler() doesn't need to do that itself any longer. Therefore remove that code and do_IPI()'s pt_regs argument. Signed-off-by: James Hogan <james.hogan@imgtec.com> Cc: linux-metag@vger.kernel.org Cc: Thomas Gleixner <tglx@linutronix.de>
-rw-r--r--arch/metag/kernel/smp.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/arch/metag/kernel/smp.c b/arch/metag/kernel/smp.c
index 7c0113142981..177ffb408c5a 100644
--- a/arch/metag/kernel/smp.c
+++ b/arch/metag/kernel/smp.c
@@ -517,11 +517,10 @@ static DEFINE_SPINLOCK(stop_lock);
*
* Bit 0 - Inter-processor function call
*/
-static int do_IPI(struct pt_regs *regs)
+static int do_IPI(void)
{
unsigned int cpu = smp_processor_id();
struct ipi_data *ipi = &per_cpu(ipi_data, cpu);
- struct pt_regs *old_regs = set_irq_regs(regs);
unsigned long msgs, nextmsg;
int handled = 0;
@@ -557,8 +556,6 @@ static int do_IPI(struct pt_regs *regs)
}
}
- set_irq_regs(old_regs);
-
return handled;
}
@@ -624,7 +621,7 @@ static void kick_raise_softirq(cpumask_t callmap, unsigned int irq)
static TBIRES ipi_handler(TBIRES State, int SigNum, int Triggers,
int Inst, PTBI pTBI, int *handled)
{
- *handled = do_IPI((struct pt_regs *)State.Sig.pCtx);
+ *handled = do_IPI();
return State;
}