diff options
author | Christoph Hellwig <hch@lst.de> | 2007-05-16 14:52:19 +0200 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2007-05-16 09:00:51 -0700 |
commit | 576fe0bd7e52dce7afb6b9b2450744555b2eb53a (patch) | |
tree | acf2a5f8d7f7906cfa2da9bf53a74d8e3fcd42bb /include | |
parent | 17028c5c91580036eb41da2fad292965fa3b9a7d (diff) |
[IA64] optimize pagefaults a little
Get rid of the notifier list and call the kprobes code directly
if compiled in. This mirrors the changes that recently went
into powerpc, s390 and sparc64.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-ia64/kdebug.h | 16 | ||||
-rw-r--r-- | include/asm-ia64/kprobes.h | 1 |
2 files changed, 14 insertions, 3 deletions
diff --git a/include/asm-ia64/kdebug.h b/include/asm-ia64/kdebug.h index ba211e011a1..320cd8e754e 100644 --- a/include/asm-ia64/kdebug.h +++ b/include/asm-ia64/kdebug.h @@ -28,14 +28,24 @@ */ #include <linux/notifier.h> -extern int register_page_fault_notifier(struct notifier_block *); -extern int unregister_page_fault_notifier(struct notifier_block *); +/* + * These are only here because kprobes.c wants them to implement a + * blatant layering violation. Will hopefully go away soon once all + * architectures are updated. + */ +static inline int register_page_fault_notifier(struct notifier_block *nb) +{ + return 0; +} +static inline int unregister_page_fault_notifier(struct notifier_block *nb) +{ + return 0; +} enum die_val { DIE_BREAK = 1, DIE_FAULT, DIE_OOPS, - DIE_PAGE_FAULT, DIE_MACHINE_HALT, DIE_MACHINE_RESTART, DIE_MCA_MONARCH_ENTER, diff --git a/include/asm-ia64/kprobes.h b/include/asm-ia64/kprobes.h index 2abc98b336f..6382e52ec22 100644 --- a/include/asm-ia64/kprobes.h +++ b/include/asm-ia64/kprobes.h @@ -120,6 +120,7 @@ struct arch_specific_insn { unsigned short slot; }; +extern int kprobes_fault_handler(struct pt_regs *regs, int trapnr); extern int kprobe_exceptions_notify(struct notifier_block *self, unsigned long val, void *data); |