.word sys_syncfs, sys_sendmmsg, sys_setns, sys_process_vm_readv, sys_process_vm_writev
/*340*/ .word sys_kern_features, sys_kcmp, sys_finit_module, sys_sched_setattr, sys_sched_getattr
.word sys_renameat2, sys_seccomp, sys_getrandom, sys_memfd_create, sys_bpf
-/*350*/ .word sys64_execveat
+/*350*/ .word sys64_execveat, sys_waitfd
#include <linux/kdebug.h>
#include <linux/percpu.h>
#include <linux/context_tracking.h>
+#include <linux/dtrace_os.h>
#include <asm/page.h>
#include <asm/pgtable.h>
}
cannot_handle:
- unhandled_fault (address, current, regs);
+ if (notify_die(DIE_PAGE_FAULT, "page fault", regs, fault_code, 14,
+ SIGKILL) != NOTIFY_STOP)
+ unhandled_fault (address, current, regs);
}
static void noinline __kprobes bogus_32bit_fault_tpc(struct pt_regs *regs)
} else
flags |= FAULT_FLAG_USER;
+ /*
+ * DTrace may want the page fault ignored...
+ */
+ if (unlikely(dtrace_no_pf(regs)))
+ return;
+
/*
* If we're in an interrupt or have no user
* context, we must not take the fault..