diff options
author | Sam Ravnborg <sam@ravnborg.org> | 2016-04-22 19:41:03 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-05-20 17:55:41 -0700 |
commit | d097efa95059e6a36a365add3deaf43fcafc4067 (patch) | |
tree | bdefeb8348380a1b83d347c24b4b0a49492c8489 /arch/sparc/kernel/kgdb_32.c | |
parent | 33656a1f2ee5346c742d63ddd0e0970c95a56b70 (diff) |
sparc32: drop hardcoding trap_level in kgdb_trap
Fix this so we pass the trap_level from the actual trap
code like we do in sparc64.
Add use on ENTRY(), ENDPROC() in the assembler function too.
This fixes a bug where the hardcoded value for trap_level
was the sparc64 value.
As the generic code does not use the trap_level argument
(for sparc32) - this patch does not have any functional impact.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc/kernel/kgdb_32.c')
-rw-r--r-- | arch/sparc/kernel/kgdb_32.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/sparc/kernel/kgdb_32.c b/arch/sparc/kernel/kgdb_32.c index dcf210811af4..5d0a323878c9 100644 --- a/arch/sparc/kernel/kgdb_32.c +++ b/arch/sparc/kernel/kgdb_32.c @@ -135,19 +135,19 @@ int kgdb_arch_handle_exception(int e_vector, int signo, int err_code, extern void do_hw_interrupt(struct pt_regs *regs, unsigned long type); -asmlinkage void kgdb_trap(struct pt_regs *regs) +asmlinkage void kgdb_trap(unsigned long trap_level, struct pt_regs *regs) { unsigned long flags; if (user_mode(regs)) { - do_hw_interrupt(regs, 0xfd); + do_hw_interrupt(regs, trap_level); return; } flushw_all(); local_irq_save(flags); - kgdb_handle_exception(0x172, SIGTRAP, 0, regs); + kgdb_handle_exception(trap_level, SIGTRAP, 0, regs); local_irq_restore(flags); } |