Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 10958
b: refs/heads/master
c: c264852
h: refs/heads/master
v: v3
  • Loading branch information
Thiemo Seufer authored and Ralf Baechle committed Oct 29, 2005
1 parent 75d9bc1 commit a585738
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 19 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 69903d6500c73af8329a5fba7153b0d50748981c
refs/heads/master: c264852726dde251a0c09ec22f61a9be8b0db68b
35 changes: 17 additions & 18 deletions trunk/arch/mips/kernel/entry.S
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@
#include <asm/war.h>

#ifdef CONFIG_PREEMPT
.macro preempt_stop reg=t0
.macro preempt_stop
.endm
#else
.macro preempt_stop reg=t0
local_irq_disable \reg
.macro preempt_stop
local_irq_disable
.endm
#define resume_kernel restore_all
#endif
Expand All @@ -37,17 +37,17 @@ FEXPORT(ret_from_irq)
andi t0, t0, KU_USER
beqz t0, resume_kernel

FEXPORT(resume_userspace)
local_irq_disable t0 # make sure we dont miss an
resume_userspace:
local_irq_disable # make sure we dont miss an
# interrupt setting need_resched
# between sampling and return
LONG_L a2, TI_FLAGS($28) # current->work
andi a2, _TIF_WORK_MASK # (ignoring syscall_trace)
bnez a2, work_pending
andi t0, a2, _TIF_WORK_MASK # (ignoring syscall_trace)
bnez t0, work_pending
j restore_all

#ifdef CONFIG_PREEMPT
ENTRY(resume_kernel)
resume_kernel:
lw t0, TI_PRE_COUNT($28)
bnez t0, restore_all
need_resched:
Expand All @@ -59,10 +59,10 @@ need_resched:
beqz t0, restore_all
li t0, PREEMPT_ACTIVE
sw t0, TI_PRE_COUNT($28)
local_irq_enable t0
local_irq_enable
jal schedule
sw zero, TI_PRE_COUNT($28)
local_irq_disable t0
local_irq_disable
b need_resched
#endif

Expand All @@ -88,13 +88,13 @@ FEXPORT(restore_partial) # restore partial frame
RESTORE_SP_AND_RET
.set at

FEXPORT(work_pending)
andi t0, a2, _TIF_NEED_RESCHED
work_pending:
andi t0, a2, _TIF_NEED_RESCHED # a2 is preloaded with TI_FLAGS
beqz t0, work_notifysig
work_resched:
jal schedule

local_irq_disable t0 # make sure need_resched and
local_irq_disable # make sure need_resched and
# signals dont change between
# sampling and return
LONG_L a2, TI_FLAGS($28)
Expand All @@ -113,11 +113,10 @@ work_notifysig: # deal with pending signals and

FEXPORT(syscall_exit_work_partial)
SAVE_STATIC
FEXPORT(syscall_exit_work)
LONG_L t0, TI_FLAGS($28)
li t1, _TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT
and t0, t1
beqz t0, work_pending # trace bit is set
syscall_exit_work:
li t0, _TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT
and t0, a2 # a2 is preloaded with TI_FLAGS
beqz t0, work_pending # trace bit set?
local_irq_enable # could let do_syscall_trace()
# call schedule() instead
move a0, sp
Expand Down

0 comments on commit a585738

Please sign in to comment.