[PATCH v2 11/11] arm64: debug: remove debug exception registration infrastructure

Will Deacon will at kernel.org
Wed May 21 02:38:17 PDT 2025


On Mon, May 12, 2025 at 06:43:26PM +0100, Ada Couprie Diaz wrote:
> Now that debug exceptions are handled individually and without the need
> for dynamic registration, remove the unused registration infrastructure.
> 
> Remove `early_brk64` as it has been made redundant by
> (arm64: debug: split brk64 exception entry) and is not used anymore.
> 
> Signed-off-by: Ada Couprie Diaz <ada.coupriediaz at arm.com>
> ---
>  arch/arm64/include/asm/debug-monitors.h |  2 -
>  arch/arm64/include/asm/exception.h      |  2 -
>  arch/arm64/include/asm/system_misc.h    |  4 --
>  arch/arm64/kernel/debug-monitors.c      |  3 -
>  arch/arm64/kernel/traps.c               | 26 +--------
>  arch/arm64/mm/fault.c                   | 75 -------------------------
>  6 files changed, 1 insertion(+), 111 deletions(-)

[...]

> diff --git a/arch/arm64/kernel/debug-monitors.c b/arch/arm64/kernel/debug-monitors.c
> index 53f0b2281f14..a5f344e556df 100644
> --- a/arch/arm64/kernel/debug-monitors.c
> +++ b/arch/arm64/kernel/debug-monitors.c
> @@ -346,9 +346,6 @@ int aarch32_break_handler(struct pt_regs *regs)
>  }
>  NOKPROBE_SYMBOL(aarch32_break_handler);
>  
> -void __init debug_traps_init(void)
> -{}
> -
>  /* Re-enable single step for syscall restarting. */
>  void user_rewind_single_step(struct task_struct *task)
>  {
> diff --git a/arch/arm64/kernel/traps.c b/arch/arm64/kernel/traps.c
> index 50d7a6a75f45..ce20f46e08cb 100644
> --- a/arch/arm64/kernel/traps.c
> +++ b/arch/arm64/kernel/traps.c
> @@ -1101,29 +1101,5 @@ int ubsan_brk_handler(struct pt_regs *regs, unsigned long esr)
>  }
>  #endif
>  
> -/*
> - * Initial handler for AArch64 BRK exceptions
> - * This handler only used until debug_traps_init().
> - */
> -int __init early_brk64(unsigned long addr, unsigned long esr,
> -		struct pt_regs *regs)
> -{
> -#ifdef CONFIG_CFI_CLANG
> -	if (esr_is_cfi_brk(esr))
> -		return cfi_brk_handler(regs, esr) != DBG_HOOK_HANDLED;
> -#endif
> -#ifdef CONFIG_KASAN_SW_TAGS
> -	if ((esr_brk_comment(esr) & ~KASAN_BRK_MASK) == KASAN_BRK_IMM)
> -		return kasan_brk_handler(regs, esr) != DBG_HOOK_HANDLED;
> -#endif
> -#ifdef CONFIG_UBSAN_TRAP
> -	if ((esr_brk_comment(esr) & ~UBSAN_BRK_MASK) == UBSAN_BRK_IMM)
> -		return ubsan_brk_handler(regs, esr) != DBG_HOOK_HANDLED;
> -#endif
> -	return bug_brk_handler(regs, esr) != DBG_HOOK_HANDLED;

The early bug handler is now only called if the brk immediate matches,
but I couldn't spot any problems with that.

Will



More information about the linux-arm-kernel mailing list