X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Fasm-powerpc%2Fkdebug.h;fp=include%2Fasm-powerpc%2Fkdebug.h;h=7c16265568e0483ebc04b11f7aea695075a45a34;hb=64ba3f394c830ec48a1c31b53dcae312c56f1604;hp=532bfee934f43328912e5d88045197feba350da7;hpb=be1e6109ac94a859551f8e1774eb9a8469fe055c;p=linux-2.6.git diff --git a/include/asm-powerpc/kdebug.h b/include/asm-powerpc/kdebug.h index 532bfee93..7c1626556 100644 --- a/include/asm-powerpc/kdebug.h +++ b/include/asm-powerpc/kdebug.h @@ -16,11 +16,13 @@ struct die_args { int signr; }; -extern int register_die_notifier(struct notifier_block *); -extern int unregister_die_notifier(struct notifier_block *); -extern int register_page_fault_notifier(struct notifier_block *); -extern int unregister_page_fault_notifier(struct notifier_block *); -extern struct atomic_notifier_head powerpc_die_chain; +/* + Note - you should never unregister because that can race with NMIs. + If you really want to do it first unregister - then synchronize_sched - + then free. + */ +int register_die_notifier(struct notifier_block *nb); +extern struct notifier_block *powerpc_die_chain; /* Grossly misnamed. */ enum die_val { @@ -35,7 +37,7 @@ enum die_val { static inline int notify_die(enum die_val val,char *str,struct pt_regs *regs,long err,int trap, int sig) { struct die_args args = { .regs=regs, .str=str, .err=err, .trapnr=trap,.signr=sig }; - return atomic_notifier_call_chain(&powerpc_die_chain, val, &args); + return notifier_call_chain(&powerpc_die_chain, val, &args); } #endif /* __KERNEL__ */