mirror of https://gitee.com/openkylin/linux.git
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
|
@ -306,12 +306,10 @@ to_kernel:
|
|||
nop
|
||||
cmp %l4, 0
|
||||
bne,pn %xcc, kern_fpucheck
|
||||
sethi %hi(PREEMPT_ACTIVE), %l6
|
||||
stw %l6, [%g6 + TI_PRE_COUNT]
|
||||
call schedule
|
||||
nop
|
||||
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
|
||||
|
|
Loading…
Reference in New Issue