diff options
author | Vineet Gupta <vgupta@synopsys.com> | 2015-02-27 11:15:08 (GMT) |
---|---|---|
committer | Vineet Gupta <vgupta@synopsys.com> | 2015-06-19 12:39:37 (GMT) |
commit | 4bf4564b27db18c77c82840025fbfdb0e62406cf (patch) | |
tree | 10467d13ed06131826570c8eb0266d63af662ba0 /arch/arc/kernel | |
parent | a8717d280879213eab8383e4a912d99514970e17 (diff) | |
download | linux-4bf4564b27db18c77c82840025fbfdb0e62406cf.tar.xz |
ARC: entry.S: comments cleanup
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Diffstat (limited to 'arch/arc/kernel')
-rw-r--r-- | arch/arc/kernel/entry.S | 46 |
1 files changed, 20 insertions, 26 deletions
diff --git a/arch/arc/kernel/entry.S b/arch/arc/kernel/entry.S index b120f3e..bd6dc89 100644 --- a/arch/arc/kernel/entry.S +++ b/arch/arc/kernel/entry.S @@ -322,13 +322,8 @@ ENTRY(EV_TLBProtV) EXCEPTION_PROLOGUE - ;---------(3) Save some more regs----------------- - ; vineetg: Mar 6th: Random Seg Fault issue #1 - ; ecr and efa were not saved in case an Intr sneaks in - ; after fake rtie - lr r2, [ecr] - lr r0, [efa] ; Faulting Data address + lr r0, [efa] ; Faulting Data addr (not part of pt_regs saved above) ; Exception auto-disables further Intr/exceptions. ; Re-enable them by pretending to return from exception @@ -336,7 +331,7 @@ ENTRY(EV_TLBProtV) FAKE_RET_FROM_EXCPN - mov r1, sp + mov r1, sp ; Handle to pt_regs ;------ (5) Type of Protection Violation? ---------- ; @@ -415,8 +410,11 @@ ENTRY(EV_Extension) b ret_from_exception END(EV_Extension) -;######################### System Call Tracing ######################### +;################ Trap Handling (Syscall, Breakpoint) ################## +; --------------------------------------------- +; syscall Tracing +; --------------------------------------------- tracesys: ; save EFA in case tracer wants the PC of traced task ; using ERET won't work since next-PC has already committed @@ -459,10 +457,9 @@ tracesys_exit: b ret_from_exception ; NOT ret_from_system_call at is saves r0 which ; we'd done before calling post hook above -;################### Break Point TRAP ########################## - - ; ======= (5b) Trap is due to Break-Point ========= - +; --------------------------------------------- +; Breakpoint TRAP +; --------------------------------------------- trap_with_param: ; stop_pc info by gdb needs this info @@ -490,36 +487,33 @@ trap_with_param: b ret_from_exception -;##################### Trap Handling ############################## -; -; EV_Trap caused by TRAP_S and TRAP0 instructions. -;------------------------------------------------------------------ -; (1) System Calls -; :parameters in r0-r7. -; :r8 has the system call number -; (2) Break Points -;------------------------------------------------------------------ +; --------------------------------------------- +; syscall TRAP +; ABI: (r0-r7) upto 8 args, (r8) syscall number +; --------------------------------------------- ENTRY(EV_Trap) EXCEPTION_PROLOGUE - ;------- (4) What caused the Trap -------------- + ;============ TRAP 1 :breakpoints lr r10, [ecr] bmsk.f 0, r10, 7 bnz trap_with_param - ; ======= (5a) Trap is due to System Call ======== + ;============ TRAP (no param): syscall top level + ; First return from Exception to pure K mode (Exception/IRQs renabled) FAKE_RET_FROM_EXCPN - ; If syscall tracing ongoing, invoke pre-pos-hooks + ; If syscall tracing ongoing, invoke pre-post-hooks GET_CURR_THR_INFO_FLAGS r10 btst r10, TIF_SYSCALL_TRACE bnz tracesys ; this never comes back - ;============ This is normal System Call case ========== - ; Sys-call num shd not exceed the total system calls avail + ;============ Normal syscall case + + ; syscall num shd not exceed the total system calls avail cmp r8, NR_syscalls mov.hi r0, -ENOSYS bhi ret_from_system_call |