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> Acked-by: David S. Miller <davem@davemloft.net> Cc: sparclinux@vger.kernel.org Link: http://lkml.kernel.org/r/20130917183628.966769884@linutronix.de
This commit is contained in:
parent
aa0d532605
commit
9385d949d5
1 changed files with 2 additions and 4 deletions
|
@ -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
|
||||||
|
|
Loading…
Add table
Reference in a new issue