diff options
author | James Hogan <james.hogan@imgtec.com> | 2013-11-25 11:14:50 +0000 |
---|---|---|
committer | James Hogan <james.hogan@imgtec.com> | 2013-11-29 14:52:13 +0000 |
commit | 5a25f7bb5aa1b2f876d9df81c44b516e015022f8 (patch) | |
tree | 6554d692afb098239cde53b41278c15179df4825 /arch/metag | |
parent | cdf8d75818e3cd30746d38f5fbcdb3745fd267a3 (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>
Diffstat (limited to 'arch/metag')
-rw-r--r-- | arch/metag/kernel/smp.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/arch/metag/kernel/smp.c b/arch/metag/kernel/smp.c index 7c011314298..177ffb408c5 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; } |