]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ARM: 9064/1: hw_breakpoint: Do not directly check the event's overflow_handler hook
authorZhen Lei <thunder.leizhen@huawei.com>
Thu, 18 Feb 2021 02:00:05 +0000 (03:00 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 19 May 2021 08:08:25 +0000 (10:08 +0200)
[ Upstream commit a506bd5756290821a4314f502b4bafc2afcf5260 ]

The commit 1879445dfa7b ("perf/core: Set event's default
::overflow_handler()") set a default event->overflow_handler in
perf_event_alloc(), and replace the check event->overflow_handler with
is_default_overflow_handler(), but one is missing.

Currently, the bp->overflow_handler can not be NULL. As a result,
enable_single_step() is always not invoked.

Comments from Zhen Lei:

 https://patchwork.kernel.org/project/linux-arm-kernel/patch/20210207105934.2001-1-thunder.leizhen@huawei.com/

Fixes: 1879445dfa7b ("perf/core: Set event's default ::overflow_handler()")
Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
Cc: Wang Nan <wangnan0@huawei.com>
Acked-by: Will Deacon <will@kernel.org>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/arm/kernel/hw_breakpoint.c

index 7021ef0b4e71bc1dc2c598298cf1cb8cb59604e3..b06d9ea07c846aa0079d4eb4a9a935075a00d097 100644 (file)
@@ -883,7 +883,7 @@ static void breakpoint_handler(unsigned long unknown, struct pt_regs *regs)
                        info->trigger = addr;
                        pr_debug("breakpoint fired: address = 0x%x\n", addr);
                        perf_bp_event(bp, regs);
-                       if (!bp->overflow_handler)
+                       if (is_default_overflow_handler(bp))
                                enable_single_step(bp, addr);
                        goto unlock;
                }