]> git.karo-electronics.de Git - karo-tx-linux.git/commit
ARC: Use real ECR for pt_regs->event vs. synthetic values
authorVineet Gupta <vgupta@synopsys.com>
Wed, 12 Jun 2013 04:35:13 +0000 (10:05 +0530)
committerVineet Gupta <vgupta@synopsys.com>
Mon, 17 Jun 2013 13:02:23 +0000 (18:32 +0530)
commit990129dbfaad967b04ba3677cf90dffd49d9b070
tree2e7d75632e37711974f88cbfb89e35d33078ff35
parent50a45c1ad2e1d7323b7ebb6f98215d4021adba24
ARC: Use real ECR for pt_regs->event vs. synthetic values

pt_regs->event was set with artificial values to identify the low level
system event (syscall trap / breakpoint trap / exceptions / interrupts)

Now we save CPU ECR (Exception Cause Register) itself in there.
Only for Interrupts, where ECR is not applicable, do we resort to
synthetic non ECR values.

The ptrace helpers now use the sub-fields of ECR to distinguish the
events (e.g. vector 0x25 is trap, param 0 is syscall...)

The following benefits will follow:

(1) This centralizes the location of where ECR is saved and will allow
    the cleanup of task->thread.cause_code ECR placeholder which is set
    in non-uniform way. Then ARC VM code can safely rely on it being
    there for purpose of finer grained VM_EXEC dcache flush (based on
    exec fault: I-TLB Miss)

(2) Further, ECR being passed around from low level handlers as arg can
    be eliminated.

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
arch/arc/include/asm/arcregs.h
arch/arc/include/asm/entry.h
arch/arc/include/asm/ptrace.h
arch/arc/kernel/entry.S
arch/arc/kernel/kgdb.c
arch/arc/kernel/process.c
arch/arc/kernel/troubleshoot.c