sh: Look up the trap vector for the page fault notifier.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
4c59e2942e
commit
887f1ae3bc
|
@ -21,26 +21,21 @@
|
||||||
#include <asm/tlbflush.h>
|
#include <asm/tlbflush.h>
|
||||||
#include <asm/kgdb.h>
|
#include <asm/kgdb.h>
|
||||||
|
|
||||||
#ifdef CONFIG_KPROBES
|
|
||||||
static inline int notify_page_fault(struct pt_regs *regs, int trap)
|
static inline int notify_page_fault(struct pt_regs *regs, int trap)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
|
#ifdef CONFIG_KPROBES
|
||||||
if (!user_mode(regs)) {
|
if (!user_mode(regs)) {
|
||||||
preempt_disable();
|
preempt_disable();
|
||||||
if (kprobe_running() && kprobe_fault_handler(regs, trap))
|
if (kprobe_running() && kprobe_fault_handler(regs, trap))
|
||||||
ret = 1;
|
ret = 1;
|
||||||
preempt_enable();
|
preempt_enable();
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
static inline int notify_page_fault(struct pt_regs *regs, int trap)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This routine handles page faults. It determines the address,
|
* This routine handles page faults. It determines the address,
|
||||||
|
@ -58,7 +53,7 @@ asmlinkage void __kprobes do_page_fault(struct pt_regs *regs,
|
||||||
int fault;
|
int fault;
|
||||||
siginfo_t info;
|
siginfo_t info;
|
||||||
|
|
||||||
if (notify_page_fault(regs, writeaccess))
|
if (notify_page_fault(regs, lookup_exception_vector()))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
#ifdef CONFIG_SH_KGDB
|
#ifdef CONFIG_SH_KGDB
|
||||||
|
@ -293,7 +288,7 @@ asmlinkage int __kprobes __do_page_fault(struct pt_regs *regs,
|
||||||
pte_t *pte;
|
pte_t *pte;
|
||||||
pte_t entry;
|
pte_t entry;
|
||||||
|
|
||||||
if (notify_page_fault(regs, writeaccess))
|
if (notify_page_fault(regs, lookup_exception_vector()))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
#ifdef CONFIG_SH_KGDB
|
#ifdef CONFIG_SH_KGDB
|
||||||
|
|
Loading…
Reference in New Issue