|
@@ -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);
|
|
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;
|
|
unsigned long flags;
|
|
|
|
|
|
if (user_mode(regs)) {
|
|
if (user_mode(regs)) {
|
|
- do_hw_interrupt(regs, 0xfd);
|
|
|
|
|
|
+ do_hw_interrupt(regs, trap_level);
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
flushw_all();
|
|
flushw_all();
|
|
|
|
|
|
local_irq_save(flags);
|
|
local_irq_save(flags);
|
|
- kgdb_handle_exception(0x172, SIGTRAP, 0, regs);
|
|
|
|
|
|
+ kgdb_handle_exception(trap_level, SIGTRAP, 0, regs);
|
|
local_irq_restore(flags);
|
|
local_irq_restore(flags);
|
|
}
|
|
}
|
|
|
|
|