[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4e528bf2-2b53-ae93-cdcc-0c80953f40f2@c-s.fr>
Date: Thu, 27 Feb 2020 18:09:20 +0100
From: Christophe Leroy <christophe.leroy@....fr>
To: Benjamin Herrenschmidt <benh@...nel.crashing.org>,
Paul Mackerras <paulus@...ba.org>,
Michael Ellerman <mpe@...erman.id.au>, mikey@...ling.org,
Russell Currey <ruscur@...sell.cc>
Cc: linux-kernel@...r.kernel.org, linuxppc-dev@...ts.ozlabs.org
Subject: Re: [PATCH v4 13/13] powerpc/ptrace: move ptrace_triggered() into
hw_breakpoint.c
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@....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..
> *
>
Powered by blists - more mailing lists