aboutsummaryrefslogtreecommitdiffstats
path: root/arch/frv
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2012-11-02 09:20:42 -0400
committerDavid Howells <dhowells@redhat.com>2012-11-02 09:20:42 -0400
commit1ee6f5669a7eaba0e2f4e0dd0599b56eb8a9a090 (patch)
tree89436eb93201d47f625b92bb36a9f9763fae0b7e /arch/frv
parenteded09ccf58ab00474ccde547dd525c75dbc28fd (diff)
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>
Diffstat (limited to 'arch/frv')
-rw-r--r--arch/frv/kernel/entry.S2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/frv/kernel/entry.S b/arch/frv/kernel/entry.S
index ee0beb354e4d..d64c52627961 100644
--- a/arch/frv/kernel/entry.S
+++ b/arch/frv/kernel/entry.S
@@ -1086,7 +1086,7 @@ __entry_preempt_need_resched:
1086 beq icc0,#1,__entry_return_direct 1086 beq icc0,#1,__entry_return_direct
1087 1087
1088 setlos #PREEMPT_ACTIVE,gr5 1088 setlos #PREEMPT_ACTIVE,gr5
1089 sti gr5,@(gr15,#TI_FLAGS) 1089 sti gr5,@(gr15,#TI_PRE_COUNT)
1090 1090
1091 andi gr23,#~PSR_PIL,gr23 1091 andi gr23,#~PSR_PIL,gr23
1092 movgs gr23,psr 1092 movgs gr23,psr