diff options
| author | Randy Dunlap <randy.dunlap@oracle.com> | 2011-05-20 09:10:04 -0700 |
|---|---|---|
| committer | Randy Dunlap <randy.dunlap@oracle.com> | 2011-05-20 09:10:04 -0700 |
| commit | 2f3e4af471e38e0658e701973238ae4b5e50fcd6 (patch) | |
| tree | fbfc99c0d975e38ff80f4ff3239a9fc0567b8a4d /kernel/ptrace.c | |
| parent | 61516587513c84ac26e68e3ab008dc6e965d0378 (diff) | |
| parent | d410fa4ef99112386de5f218dd7df7b4fca910b4 (diff) | |
Merge branch 'docs-security' into docs-move
Diffstat (limited to 'kernel/ptrace.c')
| -rw-r--r-- | kernel/ptrace.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/kernel/ptrace.c b/kernel/ptrace.c index 0fc1eed28d27..dc7ab65f3b36 100644 --- a/kernel/ptrace.c +++ b/kernel/ptrace.c @@ -22,6 +22,7 @@ #include <linux/syscalls.h> #include <linux/uaccess.h> #include <linux/regset.h> +#include <linux/hw_breakpoint.h> /* @@ -879,3 +880,19 @@ asmlinkage long compat_sys_ptrace(compat_long_t request, compat_long_t pid, return ret; } #endif /* CONFIG_COMPAT */ + +#ifdef CONFIG_HAVE_HW_BREAKPOINT +int ptrace_get_breakpoints(struct task_struct *tsk) +{ + if (atomic_inc_not_zero(&tsk->ptrace_bp_refcnt)) + return 0; + + return -1; +} + +void ptrace_put_breakpoints(struct task_struct *tsk) +{ + if (atomic_dec_and_test(&tsk->ptrace_bp_refcnt)) + flush_ptrace_hw_breakpoint(tsk); +} +#endif /* CONFIG_HAVE_HW_BREAKPOINT */ |
