[PATCH v4 13/13] powerpc/ptrace: move ptrace_triggered() into hw_breakpoint.c
Christophe Leroy
christophe.leroy at c-s.fr
Fri Feb 28 04:09:20 AEDT 2020
Russel,
Le 27/02/2020 à 12:49, Christophe Leroy a écrit :
> ptrace_triggered() is declared in asm/hw_breakpoint.h and
> only needed when CONFIG_HW_BREAKPOINT is set, so move it
> into hw_breakpoint.c
My series v4 is definitely buggy (I included ptrace_decl.h instead
instead of ptrace-decl.h), how can Snowpatch say build succeeded
(https://patchwork.ozlabs.org/patch/1245807/) ?
It fails at least on pmac32_defconfig and ppc64_defconfig, see:
http://kisskb.ellerman.id.au/kisskb/head/d45c91cf5f83424b8f3989b7ead28c50d8d765a9/
Christophe
>
> Signed-off-by: Christophe Leroy <christophe.leroy at c-s.fr>
> ---
> v4: removing inclusing of hw_breakpoint.h now. Previously it was done too early.
> ---
> arch/powerpc/kernel/hw_breakpoint.c | 16 ++++++++++++++++
> arch/powerpc/kernel/ptrace/ptrace.c | 19 -------------------
> 2 files changed, 16 insertions(+), 19 deletions(-)
>
> diff --git a/arch/powerpc/kernel/hw_breakpoint.c b/arch/powerpc/kernel/hw_breakpoint.c
> index 2462cd7c565c..2c0be9d941cf 100644
> --- a/arch/powerpc/kernel/hw_breakpoint.c
> +++ b/arch/powerpc/kernel/hw_breakpoint.c
> @@ -427,3 +427,19 @@ void hw_breakpoint_pmu_read(struct perf_event *bp)
> {
> /* TODO */
> }
> +
> +void ptrace_triggered(struct perf_event *bp,
> + struct perf_sample_data *data, struct pt_regs *regs)
> +{
> + struct perf_event_attr attr;
> +
> + /*
> + * Disable the breakpoint request here since ptrace has defined a
> + * one-shot behaviour for breakpoint exceptions in PPC64.
> + * The SIGTRAP signal is generated automatically for us in do_dabr().
> + * We don't have to do anything about that here
> + */
> + attr = bp->attr;
> + attr.disabled = true;
> + modify_user_hw_breakpoint(bp, &attr);
> +}
> diff --git a/arch/powerpc/kernel/ptrace/ptrace.c b/arch/powerpc/kernel/ptrace/ptrace.c
> index a44f6e5e05ff..f6e51be47c6e 100644
> --- a/arch/powerpc/kernel/ptrace/ptrace.c
> +++ b/arch/powerpc/kernel/ptrace/ptrace.c
> @@ -18,7 +18,6 @@
> #include <linux/regset.h>
> #include <linux/tracehook.h>
> #include <linux/audit.h>
> -#include <linux/hw_breakpoint.h>
> #include <linux/context_tracking.h>
> #include <linux/syscalls.h>
>
> @@ -31,24 +30,6 @@
>
> #include "ptrace-decl.h"
>
> -#ifdef CONFIG_HAVE_HW_BREAKPOINT
> -void ptrace_triggered(struct perf_event *bp,
> - struct perf_sample_data *data, struct pt_regs *regs)
> -{
> - struct perf_event_attr attr;
> -
> - /*
> - * Disable the breakpoint request here since ptrace has defined a
> - * one-shot behaviour for breakpoint exceptions in PPC64.
> - * The SIGTRAP signal is generated automatically for us in do_dabr().
> - * We don't have to do anything about that here
> - */
> - attr = bp->attr;
> - attr.disabled = true;
> - modify_user_hw_breakpoint(bp, &attr);
> -}
> -#endif /* CONFIG_HAVE_HW_BREAKPOINT */
> -
> /*
> * Called by kernel/ptrace.c when detaching..
> *
>
More information about the Linuxppc-dev
mailing list