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: Al Viro <viro@ZenIV.linux.org.uk> Signed-off-by: David Howells <dhowells@redhat.com> cc: Al Viro <viro@ZenIV.linux.org.uk>
This commit is contained in:
@@ -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
|
||||||
|
Reference in New Issue
Block a user