提交 1ee6f566 编写于 作者: D David Howells

FRV: Fix the preemption handling

Fix the preemption handling in FRV code where the PREEMPT_ACTIVE value is
incorrectly loaded into the threadinfo flags rather than the threadinfo
preemption count.

Unfortunately, the code cannot be simply converted to use
preempt_schedule_irq() as is because FRV uses virtual interrupt disablement to
cut down on the cost of actually disabling interrupts and thus
local_irq_enable() doesn't actually enable interrupts.
Reported-by: NAl Viro <viro@ZenIV.linux.org.uk>
Signed-off-by: NDavid Howells <dhowells@redhat.com>
cc: Al Viro <viro@ZenIV.linux.org.uk>
上级 eded09cc
...@@ -1086,7 +1086,7 @@ __entry_preempt_need_resched: ...@@ -1086,7 +1086,7 @@ __entry_preempt_need_resched:
beq icc0,#1,__entry_return_direct beq icc0,#1,__entry_return_direct
setlos #PREEMPT_ACTIVE,gr5 setlos #PREEMPT_ACTIVE,gr5
sti gr5,@(gr15,#TI_FLAGS) sti gr5,@(gr15,#TI_PRE_COUNT)
andi gr23,#~PSR_PIL,gr23 andi gr23,#~PSR_PIL,gr23
movgs gr23,psr movgs gr23,psr
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册