Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752150AbdGaKmE (ORCPT ); Mon, 31 Jul 2017 06:42:04 -0400 Received: from mail-pf0-f181.google.com ([209.85.192.181]:36424 "EHLO mail-pf0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751883AbdGaKlL (ORCPT ); Mon, 31 Jul 2017 06:41:11 -0400 From: Pratyush Anand To: linux-arm-kernel@lists.infradead.org, Will Deacon , Mark Rutland Cc: huawei.libin@huawei.com, takahiro.akashi@linaro.org, Pratyush Anand , linux-kernel@vger.kernel.org Subject: [PATCH v3 2/5] arm64: use hw_breakpoint_needs_single_step() to decide if step is needed Date: Mon, 31 Jul 2017 16:10:30 +0530 Message-Id: <2d95da25d614b49196c4d7606334fdd062d88d37.1501496603.git.panand@redhat.com> X-Mailer: git-send-email 2.9.4 In-Reply-To: References: In-Reply-To: References: Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1697 Lines: 47 Currently we use is_default_overflow_handler() to decide whether a "step" will be needed or not. However, is_default_overflow_handler() is true only for perf implementation. There can be some custom kernel module tests like samples/hw_breakpoint/data_breakpoint.c which can rely on default step handler. hw_breakpoint_needs_single_step() will be true if any hw_breakpoint user wants to use default step handler and sets step_needed in hw_perf_event. Signed-off-by: Pratyush Anand --- arch/arm64/kernel/hw_breakpoint.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arm64/kernel/hw_breakpoint.c b/arch/arm64/kernel/hw_breakpoint.c index 749f81779420..9a73f85ab9ad 100644 --- a/arch/arm64/kernel/hw_breakpoint.c +++ b/arch/arm64/kernel/hw_breakpoint.c @@ -661,7 +661,7 @@ static int breakpoint_handler(unsigned long unused, unsigned int esr, perf_bp_event(bp, regs); /* Do we need to handle the stepping? */ - if (is_default_overflow_handler(bp)) + if (hw_breakpoint_needs_single_step(bp)) step = 1; unlock: rcu_read_unlock(); @@ -789,7 +789,7 @@ static int watchpoint_handler(unsigned long addr, unsigned int esr, perf_bp_event(wp, regs); /* Do we need to handle the stepping? */ - if (is_default_overflow_handler(wp)) + if (hw_breakpoint_needs_single_step(wp)) step = 1; } if (min_dist > 0 && min_dist != -1) { @@ -800,7 +800,7 @@ static int watchpoint_handler(unsigned long addr, unsigned int esr, perf_bp_event(wp, regs); /* Do we need to handle the stepping? */ - if (is_default_overflow_handler(wp)) + if (hw_breakpoint_needs_single_step(wp)) step = 1; } rcu_read_unlock(); -- 2.9.4