Skip to content

Commit

Permalink
FRV: Fix the preemption handling
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
dhowells committed Nov 2, 2012
1 parent eded09c commit 1ee6f56
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion arch/frv/kernel/entry.S
Expand Up @@ -1086,7 +1086,7 @@ __entry_preempt_need_resched:
beq icc0,#1,__entry_return_direct

setlos #PREEMPT_ACTIVE,gr5
sti gr5,@(gr15,#TI_FLAGS)
sti gr5,@(gr15,#TI_PRE_COUNT)

andi gr23,#~PSR_PIL,gr23
movgs gr23,psr
Expand Down

0 comments on commit 1ee6f56

Please sign in to comment.