[<prev] [next>] [day] [month] [year] [list]
Message-ID: <2afdd880-86a0-4029-6c2f-091c5939fa95@redhat.com>
Date: Wed, 2 Nov 2016 15:44:36 +0530
From: Pratyush Anand <panand@...hat.com>
To: Sandeepa Prabhu <sandeepa.prabhu@...adcom.com>
Cc: linux-arm-kernel <linux-arm-kernel@...ts.infradead.org>,
Catalin Marinas <catalin.marinas@....com>,
Will Deacon <will.deacon@....com>,
open list <linux-kernel@...r.kernel.org>,
William Cohen <wcohen@...hat.com>, oleg@...hat.com,
dave.long@...hat.com, Steve Capper <steve.capper@...aro.org>,
srikar@...ux.vnet.ibm.com, vijaya.kumar@...iumnetworks.com
Subject: Re: [PATCH V3 2/6] arm64: kgdb_step_brk_fn: ignore other's exception
On Wednesday 02 November 2016 03:30 PM, Sandeepa Prabhu wrote:
>
>
> On Wed, Nov 2, 2016 at 2:40 PM, Pratyush Anand <panand@...hat.com
> <mailto:panand@...hat.com>> wrote:
>
> ARM64 step exception does not have any syndrome information. So, it is
> responsibility of exception handler to take care that they handle it
> only if exception was raised for them.
>
> Since kgdb_step_brk_fn() always returns 0, therefore we might have
> problem
> when we will have other step handler registered as well.
>
> This patch fixes kgdb_step_brk_fn() to return error in case of step
> handler
> was not meant for kgdb.
>
> Signed-off-by: Pratyush Anand <panand@...hat.com
> <mailto:panand@...hat.com>>
> ---
> arch/arm64/kernel/kgdb.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/arch/arm64/kernel/kgdb.c b/arch/arm64/kernel/kgdb.c
> index e017a9493b92..d217c9e95b06 100644
> --- a/arch/arm64/kernel/kgdb.c
> +++ b/arch/arm64/kernel/kgdb.c
> @@ -247,6 +247,9 @@ NOKPROBE_SYMBOL(kgdb_compiled_brk_fn);
>
> static int kgdb_step_brk_fn(struct pt_regs *regs, unsigned int esr)
> {
> + if (!kgdb_single_step)
> + return DBG_HOOK_ERROR;
> +
>
> This is needed. So, single stepping in kprobes working all these days
> because kprobes handler was registered earlier to kgdb handler!
Actually kprobe_single_step_handler() is not called through
call_step_hook(), so it is always safe.
We had discussed here (https://lkml.org/lkml/2016/9/7/6) that why we can
not register kprobe_single_step_handler() via register_set_hook()
and only invoke call_step_hook().
~Pratyush
Powered by blists - more mailing lists