From 955e80a4dccf91f5ef4823ce55120b4c8feec164 Mon Sep 17 00:00:00 2001 From: Frederic Weisbecker Date: Thu, 22 Apr 2010 05:05:45 +0200 Subject: [PATCH] --- yaml --- r: 191271 b: refs/heads/master c: 73266fc1df2f94cf72b3beba3eee3b88ed0b0664 h: refs/heads/master i: 191269: b858ae4b1ce811c803dc2b5bb18af3d5c6aefdc4 191267: 1d17cedac873e01ce6173dee4d6d64e10fdb5c6a 191263: 81def82ad973b63a8c06a05d7d0ebdf1847a9104 v: v3 --- [refs] | 2 +- trunk/arch/sh/kernel/ptrace_32.c | 2 +- trunk/arch/x86/kernel/ptrace.c | 2 +- trunk/include/linux/hw_breakpoint.h | 6 ++++++ 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 834d84610243..8341572cac83 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d00a47cce569a3e660a8c9de5d57af28d6a9f0f7 +refs/heads/master: 73266fc1df2f94cf72b3beba3eee3b88ed0b0664 diff --git a/trunk/arch/sh/kernel/ptrace_32.c b/trunk/arch/sh/kernel/ptrace_32.c index 7759a9a93211..d4104ce9fe53 100644 --- a/trunk/arch/sh/kernel/ptrace_32.c +++ b/trunk/arch/sh/kernel/ptrace_32.c @@ -85,7 +85,7 @@ static int set_single_step(struct task_struct *tsk, unsigned long addr) bp = thread->ptrace_bps[0]; if (!bp) { - hw_breakpoint_init(&attr); + ptrace_breakpoint_init(&attr); attr.bp_addr = addr; attr.bp_len = HW_BREAKPOINT_LEN_2; diff --git a/trunk/arch/x86/kernel/ptrace.c b/trunk/arch/x86/kernel/ptrace.c index 055be0afd330..70c4872cd8aa 100644 --- a/trunk/arch/x86/kernel/ptrace.c +++ b/trunk/arch/x86/kernel/ptrace.c @@ -688,7 +688,7 @@ static int ptrace_set_breakpoint_addr(struct task_struct *tsk, int nr, struct perf_event_attr attr; if (!t->ptrace_bps[nr]) { - hw_breakpoint_init(&attr); + ptrace_breakpoint_init(&attr); /* * Put stub len and type to register (reserve) an inactive but * correct bp diff --git a/trunk/include/linux/hw_breakpoint.h b/trunk/include/linux/hw_breakpoint.h index c70d27af03f9..a0aa5a9cfb0e 100644 --- a/trunk/include/linux/hw_breakpoint.h +++ b/trunk/include/linux/hw_breakpoint.h @@ -34,6 +34,12 @@ static inline void hw_breakpoint_init(struct perf_event_attr *attr) attr->sample_period = 1; } +static inline void ptrace_breakpoint_init(struct perf_event_attr *attr) +{ + hw_breakpoint_init(attr); + attr->exclude_kernel = 1; +} + static inline unsigned long hw_breakpoint_addr(struct perf_event *bp) { return bp->attr.bp_addr;