X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Fasm-powerpc%2Fkdebug.h;h=7c16265568e0483ebc04b11f7aea695075a45a34;hb=987b0145d94eecf292d8b301228356f44611ab7c;hp=c01786ab5fa645c6e333f8f87881a15e95589c5a;hpb=f7ed79d23a47594e7834d66a8f14449796d4f3e6;p=linux-2.6.git diff --git a/include/asm-powerpc/kdebug.h b/include/asm-powerpc/kdebug.h index c01786ab5..7c1626556 100644 --- a/include/asm-powerpc/kdebug.h +++ b/include/asm-powerpc/kdebug.h @@ -16,9 +16,13 @@ struct die_args { int signr; }; -extern int register_die_notifier(struct notifier_block *); -extern int unregister_die_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 { @@ -33,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__ */