| Date | Tue, 17 Sep 2013 18:53:08 -0000 | From | Thomas Gleixner <> | Subject | [patch 5/6] sparc: Use preempt_schedule_irq |
| |
The low level preemption code fiddles with the PREEMPT_ACTIVE bit for no reason and calls schedule() with interrupts disabled, which is wrong to begin with. Remove the PREEMPT_ACTIVE fiddling and call the proper schedule_preempt_irq() function.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: "David S. Miller" <davem@davemloft.net> Cc: sparclinux@vger.kernel.org
--- arch/sparc/kernel/rtrap_64.S | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-)
Index: linux-2.6/arch/sparc/kernel/rtrap_64.S =================================================================== --- linux-2.6.orig/arch/sparc/kernel/rtrap_64.S +++ linux-2.6/arch/sparc/kernel/rtrap_64.S @@ -306,12 +306,9 @@ to_kernel: nop cmp %l4, 0 bne,pn %xcc, kern_fpucheck - sethi %hi(PREEMPT_ACTIVE), %l6 - stw %l6, [%g6 + TI_PRE_COUNT] - call schedule + call preempt_schedule_irq nop ba,pt %xcc, rtrap - stw %g0, [%g6 + TI_PRE_COUNT] #endif kern_fpucheck: ldub [%g6 + TI_FPDEPTH], %l5 brz,pt %l5, rt_continue
|