diff options
author | Michal Simek <monstr@monstr.eu> | 2011-01-31 15:04:43 +0100 |
---|---|---|
committer | Michal Simek <monstr@monstr.eu> | 2011-03-09 08:09:54 +0100 |
commit | d8748e73e882106ff0ffa0fa2192dab111a9f9f8 (patch) | |
tree | 210ea8b6357c7c2302c514bdaad00142ed8aa71b /arch/microblaze | |
parent | microblaze: Optimize BE/LE bootup detecting (diff) | |
download | linux-d8748e73e882106ff0ffa0fa2192dab111a9f9f8.tar.xz linux-d8748e73e882106ff0ffa0fa2192dab111a9f9f8.zip |
microblaze: Do not use r0_ram space for syscall debugging
Remove syscall counting space from r0_ram. Use special
syscall_debug_table pool for syscall statistic.
Signed-off-by: Michal Simek <monstr@monstr.eu>
Diffstat (limited to 'arch/microblaze')
-rw-r--r-- | arch/microblaze/kernel/entry.S | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/arch/microblaze/kernel/entry.S b/arch/microblaze/kernel/entry.S index 41c30cdb2704..5010f0b22ca6 100644 --- a/arch/microblaze/kernel/entry.S +++ b/arch/microblaze/kernel/entry.S @@ -39,6 +39,15 @@ /* The offset of the struct pt_regs in a `state save frame' on the stack. */ #define PTO STATE_SAVE_ARG_SPACE /* 24 the space for args */ +#ifdef DEBUG +/* Create space for syscalls counting. */ +.section .data +.global syscall_debug_table +.align 4 +syscall_debug_table: + .space (__NR_syscalls * 4) +#endif /* DEBUG */ + #define C_ENTRY(name) .globl name; .align 4; name /* @@ -371,10 +380,14 @@ C_ENTRY(_user_exception): add r12, r12, r12; #ifdef DEBUG - /* Trac syscalls and stored them to r0_ram */ - lwi r3, r12, 0x400 + r0_ram + /* Trac syscalls and stored them to syscall_debug_table */ + /* The first syscall location stores total syscall number */ + lwi r3, r0, syscall_debug_table + addi r3, r3, 1 + swi r3, r0, syscall_debug_table + lwi r3, r12, syscall_debug_table addi r3, r3, 1 - swi r3, r12, 0x400 + r0_ram + swi r3, r12, syscall_debug_table #endif # Find and jump into the syscall handler. |