Commit 7ba5fef7 authored by Michael Neuling's avatar Michael Neuling Committed by Benjamin Herrenschmidt

powerpc/tm: Remove interrupt disable in __switch_to()

We currently turn IRQs off in __switch_to(0 but this is unnecessary as it's
already disabled in the caller.

This removes the IRQ disable but adds a check to make sure it is really off
in case this changes in future.
Signed-off-by: default avatarMichael Neuling <mikey@neuling.org>
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
parent d0cebfa6
...@@ -597,12 +597,13 @@ struct task_struct *__switch_to(struct task_struct *prev, ...@@ -597,12 +597,13 @@ struct task_struct *__switch_to(struct task_struct *prev,
struct task_struct *new) struct task_struct *new)
{ {
struct thread_struct *new_thread, *old_thread; struct thread_struct *new_thread, *old_thread;
unsigned long flags;
struct task_struct *last; struct task_struct *last;
#ifdef CONFIG_PPC_BOOK3S_64 #ifdef CONFIG_PPC_BOOK3S_64
struct ppc64_tlb_batch *batch; struct ppc64_tlb_batch *batch;
#endif #endif
WARN_ON(!irqs_disabled());
/* Back up the TAR across context switches. /* Back up the TAR across context switches.
* Note that the TAR is not available for use in the kernel. (To * Note that the TAR is not available for use in the kernel. (To
* provide this, the TAR should be backed up/restored on exception * provide this, the TAR should be backed up/restored on exception
...@@ -722,8 +723,6 @@ struct task_struct *__switch_to(struct task_struct *prev, ...@@ -722,8 +723,6 @@ struct task_struct *__switch_to(struct task_struct *prev,
} }
#endif /* CONFIG_PPC_BOOK3S_64 */ #endif /* CONFIG_PPC_BOOK3S_64 */
local_irq_save(flags);
/* /*
* We can't take a PMU exception inside _switch() since there is a * We can't take a PMU exception inside _switch() since there is a
* window where the kernel stack SLB and the kernel stack are out * window where the kernel stack SLB and the kernel stack are out
...@@ -743,8 +742,6 @@ struct task_struct *__switch_to(struct task_struct *prev, ...@@ -743,8 +742,6 @@ struct task_struct *__switch_to(struct task_struct *prev,
} }
#endif /* CONFIG_PPC_BOOK3S_64 */ #endif /* CONFIG_PPC_BOOK3S_64 */
local_irq_restore(flags);
return last; return last;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment