|
@@ -172,6 +172,9 @@ ENTRY(handle_exception)
|
|
move a1, sp /* pt_regs */
|
|
move a1, sp /* pt_regs */
|
|
tail do_IRQ
|
|
tail do_IRQ
|
|
1:
|
|
1:
|
|
|
|
+ /* Exceptions run with interrupts enabled */
|
|
|
|
+ csrs sstatus, SR_SIE
|
|
|
|
+
|
|
/* Handle syscalls */
|
|
/* Handle syscalls */
|
|
li t0, EXC_SYSCALL
|
|
li t0, EXC_SYSCALL
|
|
beq s4, t0, handle_syscall
|
|
beq s4, t0, handle_syscall
|
|
@@ -198,8 +201,6 @@ handle_syscall:
|
|
*/
|
|
*/
|
|
addi s2, s2, 0x4
|
|
addi s2, s2, 0x4
|
|
REG_S s2, PT_SEPC(sp)
|
|
REG_S s2, PT_SEPC(sp)
|
|
- /* System calls run with interrupts enabled */
|
|
|
|
- csrs sstatus, SR_SIE
|
|
|
|
/* Trace syscalls, but only if requested by the user. */
|
|
/* Trace syscalls, but only if requested by the user. */
|
|
REG_L t0, TASK_TI_FLAGS(tp)
|
|
REG_L t0, TASK_TI_FLAGS(tp)
|
|
andi t0, t0, _TIF_SYSCALL_TRACE
|
|
andi t0, t0, _TIF_SYSCALL_TRACE
|