Commit 9385d949 authored by Thomas Gleixner's avatar Thomas Gleixner

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: default avatarThomas Gleixner <tglx@linutronix.de>
Acked-by: default avatarDavid S. Miller <davem@davemloft.net>
Cc: sparclinux@vger.kernel.org
Link: http://lkml.kernel.org/r/20130917183628.966769884@linutronix.de
parent aa0d5326
...@@ -306,12 +306,10 @@ to_kernel: ...@@ -306,12 +306,10 @@ to_kernel:
nop nop
cmp %l4, 0 cmp %l4, 0
bne,pn %xcc, kern_fpucheck bne,pn %xcc, kern_fpucheck
sethi %hi(PREEMPT_ACTIVE), %l6 nop
stw %l6, [%g6 + TI_PRE_COUNT] call preempt_schedule_irq
call schedule
nop nop
ba,pt %xcc, rtrap ba,pt %xcc, rtrap
stw %g0, [%g6 + TI_PRE_COUNT]
#endif #endif
kern_fpucheck: ldub [%g6 + TI_FPDEPTH], %l5 kern_fpucheck: ldub [%g6 + TI_FPDEPTH], %l5
brz,pt %l5, rt_continue brz,pt %l5, rt_continue
......
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