mirror of https://gitee.com/openkylin/linux.git
sh: Convert to common die chain.
This went in immediately after SH added the die chain notifiers, so move over to that instead.. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
21ec4c6453
commit
b118ca572d
|
@ -15,7 +15,7 @@
|
|||
#include <linux/pm.h>
|
||||
#include <linux/kallsyms.h>
|
||||
#include <linux/kexec.h>
|
||||
#include <asm/kdebug.h>
|
||||
#include <linux/kdebug.h>
|
||||
#include <asm/uaccess.h>
|
||||
#include <asm/mmu_context.h>
|
||||
#include <asm/pgalloc.h>
|
||||
|
@ -500,7 +500,7 @@ asmlinkage void debug_trap_handler(unsigned long r4, unsigned long r5,
|
|||
/* Rewind */
|
||||
regs->pc -= instruction_size(ctrl_inw(regs->pc - 4));
|
||||
|
||||
if (notify_die(DIE_TRAP, regs, regs->tra & 0xff,
|
||||
if (notify_die(DIE_TRAP, "debug trap", regs, 0, regs->tra & 0xff,
|
||||
SIGTRAP) == NOTIFY_STOP)
|
||||
return;
|
||||
|
||||
|
@ -519,7 +519,7 @@ asmlinkage void bug_trap_handler(unsigned long r4, unsigned long r5,
|
|||
/* Rewind */
|
||||
regs->pc -= instruction_size(ctrl_inw(regs->pc - 4));
|
||||
|
||||
if (notify_die(DIE_TRAP, regs, TRAPA_BUG_OPCODE & 0xff,
|
||||
if (notify_die(DIE_TRAP, "bug trap", regs, 0, TRAPA_BUG_OPCODE & 0xff,
|
||||
SIGTRAP) == NOTIFY_STOP)
|
||||
return;
|
||||
|
||||
|
|
|
@ -20,10 +20,10 @@
|
|||
#include <linux/io.h>
|
||||
#include <linux/bug.h>
|
||||
#include <linux/debug_locks.h>
|
||||
#include <linux/kdebug.h>
|
||||
#include <linux/limits.h>
|
||||
#include <asm/system.h>
|
||||
#include <asm/uaccess.h>
|
||||
#include <asm/kdebug.h>
|
||||
|
||||
#ifdef CONFIG_SH_KGDB
|
||||
#include <asm/kgdb.h>
|
||||
|
@ -76,20 +76,6 @@ static void dump_mem(const char *str, unsigned long bottom, unsigned long top)
|
|||
}
|
||||
}
|
||||
|
||||
ATOMIC_NOTIFIER_HEAD(shdie_chain);
|
||||
|
||||
int register_die_notifier(struct notifier_block *nb)
|
||||
{
|
||||
return atomic_notifier_chain_register(&shdie_chain, nb);
|
||||
}
|
||||
EXPORT_SYMBOL(register_die_notifier);
|
||||
|
||||
int unregister_die_notifier(struct notifier_block *nb)
|
||||
{
|
||||
return atomic_notifier_chain_unregister(&shdie_chain, nb);
|
||||
}
|
||||
EXPORT_SYMBOL(unregister_die_notifier);
|
||||
|
||||
static DEFINE_SPINLOCK(die_lock);
|
||||
|
||||
void die(const char * str, struct pt_regs * regs, long err)
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#include <linux/mm.h>
|
||||
#include <linux/hardirq.h>
|
||||
#include <linux/kprobes.h>
|
||||
#include <asm/kdebug.h>
|
||||
#include <linux/kdebug.h>
|
||||
#include <asm/system.h>
|
||||
#include <asm/mmu_context.h>
|
||||
#include <asm/tlbflush.h>
|
||||
|
|
|
@ -2,20 +2,6 @@
|
|||
#define __ASM_SH_KDEBUG_H
|
||||
|
||||
#include <linux/notifier.h>
|
||||
#include <asm-generic/kdebug.h>
|
||||
|
||||
struct pt_regs;
|
||||
|
||||
struct die_args {
|
||||
struct pt_regs *regs;
|
||||
int trapnr;
|
||||
};
|
||||
|
||||
int register_die_notifier(struct notifier_block *nb);
|
||||
int unregister_die_notifier(struct notifier_block *nb);
|
||||
int register_page_fault_notifier(struct notifier_block *nb);
|
||||
int unregister_page_fault_notifier(struct notifier_block *nb);
|
||||
extern struct atomic_notifier_head shdie_chain;
|
||||
|
||||
/* Grossly misnamed. */
|
||||
enum die_val {
|
||||
|
@ -23,14 +9,7 @@ enum die_val {
|
|||
DIE_PAGE_FAULT,
|
||||
};
|
||||
|
||||
static inline int notify_die(enum die_val val, struct pt_regs *regs,
|
||||
int trap, int sig)
|
||||
{
|
||||
struct die_args args = {
|
||||
.regs = regs,
|
||||
.trapnr = trap,
|
||||
};
|
||||
int register_page_fault_notifier(struct notifier_block *nb);
|
||||
int unregister_page_fault_notifier(struct notifier_block *nb);
|
||||
|
||||
return atomic_notifier_call_chain(&shdie_chain, val, &args);
|
||||
}
|
||||
#endif /* __ASM_SH_KDEBUG_H */
|
||||
|
|
Loading…
Reference in New Issue