* Re: [PATCH] arm64: Remove unreachable break after die
2025-11-26 22:26 [PATCH] arm64: Remove unreachable break after die Osama Abdelkader
@ 2025-11-27 9:20 ` Mark Rutland
2025-11-28 2:31 ` Anshuman Khandual
2025-11-28 2:41 ` kernel test robot
1 sibling, 1 reply; 5+ messages in thread
From: Mark Rutland @ 2025-11-27 9:20 UTC (permalink / raw)
To: Osama Abdelkader
Cc: smostafa, catalin.marinas, linux-kernel, will, linux-arm-kernel
On Thu, Nov 27, 2025 at 12:26:20AM +0200, Osama Abdelkader wrote:
> die() never returns, the break is unreachable in arch/arm64/kernel/traps.c
Is the break causing some problem, e.g. a compiler warning?
If not, then I don't see a reason to remove the break.
There are many other instances of "die(...); break" throughout the
kernel, and this doesn't seem to be speecial.
Mark.
> Signed-off-by: Osama Abdelkader <osama.abdelkader@gmail.com>
> ---
> arch/arm64/kernel/traps.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/arch/arm64/kernel/traps.c b/arch/arm64/kernel/traps.c
> index 681939ef5d16..81dd2d7759eb 100644
> --- a/arch/arm64/kernel/traps.c
> +++ b/arch/arm64/kernel/traps.c
> @@ -1003,7 +1003,6 @@ int bug_brk_handler(struct pt_regs *regs, unsigned long esr)
> switch (report_bug(regs->pc, regs)) {
> case BUG_TRAP_TYPE_BUG:
> die("Oops - BUG", regs, esr);
> - break;
>
> case BUG_TRAP_TYPE_WARN:
> break;
> --
> 2.43.0
>
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH] arm64: Remove unreachable break after die
2025-11-26 22:26 [PATCH] arm64: Remove unreachable break after die Osama Abdelkader
2025-11-27 9:20 ` Mark Rutland
@ 2025-11-28 2:41 ` kernel test robot
1 sibling, 0 replies; 5+ messages in thread
From: kernel test robot @ 2025-11-28 2:41 UTC (permalink / raw)
To: Osama Abdelkader, catalin.marinas, will, mark.rutland,
ada.coupriediaz, smostafa
Cc: llvm, oe-kbuild-all, linux-arm-kernel, linux-kernel,
Osama Abdelkader
Hi Osama,
kernel test robot noticed the following build warnings:
[auto build test WARNING on arm64/for-next/core]
[also build test WARNING on linus/master v6.18-rc7 next-20251127]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Osama-Abdelkader/arm64-Remove-unreachable-break-after-die/20251127-062758
base: https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-next/core
patch link: https://lore.kernel.org/r/20251126222620.215245-1-osama.abdelkader%40gmail.com
patch subject: [PATCH] arm64: Remove unreachable break after die
config: arm64-randconfig-001-20251128 (https://download.01.org/0day-ci/archive/20251128/202511281049.oCzxmRVJ-lkp@intel.com/config)
compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project b3428bb966f1de8aa48375ffee0eba04ede133b7)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251128/202511281049.oCzxmRVJ-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202511281049.oCzxmRVJ-lkp@intel.com/
All warnings (new ones prefixed by >>):
| ^~~~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:833:28: note: previous initialization is here
833 | [0 ... ESR_ELx_EC_MAX] = "UNRECOGNIZED EC",
| ^~~~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:862:27: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
862 | [ESR_ELx_EC_DABT_CUR] = "DABT (current EL)",
| ^~~~~~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:833:28: note: previous initialization is here
833 | [0 ... ESR_ELx_EC_MAX] = "UNRECOGNIZED EC",
| ^~~~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:863:27: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
863 | [ESR_ELx_EC_SP_ALIGN] = "SP Alignment",
| ^~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:833:28: note: previous initialization is here
833 | [0 ... ESR_ELx_EC_MAX] = "UNRECOGNIZED EC",
| ^~~~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:864:23: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
864 | [ESR_ELx_EC_MOPS] = "MOPS",
| ^~~~~~
arch/arm64/kernel/traps.c:833:28: note: previous initialization is here
833 | [0 ... ESR_ELx_EC_MAX] = "UNRECOGNIZED EC",
| ^~~~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:865:27: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
865 | [ESR_ELx_EC_FP_EXC32] = "FP (AArch32)",
| ^~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:833:28: note: previous initialization is here
833 | [0 ... ESR_ELx_EC_MAX] = "UNRECOGNIZED EC",
| ^~~~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:866:27: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
866 | [ESR_ELx_EC_FP_EXC64] = "FP (AArch64)",
| ^~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:833:28: note: previous initialization is here
833 | [0 ... ESR_ELx_EC_MAX] = "UNRECOGNIZED EC",
| ^~~~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:867:22: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
867 | [ESR_ELx_EC_GCS] = "Guarded Control Stack",
| ^~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:833:28: note: previous initialization is here
833 | [0 ... ESR_ELx_EC_MAX] = "UNRECOGNIZED EC",
| ^~~~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:868:25: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
868 | [ESR_ELx_EC_SERROR] = "SError",
| ^~~~~~~~
arch/arm64/kernel/traps.c:833:28: note: previous initialization is here
833 | [0 ... ESR_ELx_EC_MAX] = "UNRECOGNIZED EC",
| ^~~~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:869:29: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
869 | [ESR_ELx_EC_BREAKPT_LOW] = "Breakpoint (lower EL)",
| ^~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:833:28: note: previous initialization is here
833 | [0 ... ESR_ELx_EC_MAX] = "UNRECOGNIZED EC",
| ^~~~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:870:29: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
870 | [ESR_ELx_EC_BREAKPT_CUR] = "Breakpoint (current EL)",
| ^~~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:833:28: note: previous initialization is here
833 | [0 ... ESR_ELx_EC_MAX] = "UNRECOGNIZED EC",
| ^~~~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:871:29: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
871 | [ESR_ELx_EC_SOFTSTP_LOW] = "Software Step (lower EL)",
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:833:28: note: previous initialization is here
833 | [0 ... ESR_ELx_EC_MAX] = "UNRECOGNIZED EC",
| ^~~~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:872:29: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
872 | [ESR_ELx_EC_SOFTSTP_CUR] = "Software Step (current EL)",
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:833:28: note: previous initialization is here
833 | [0 ... ESR_ELx_EC_MAX] = "UNRECOGNIZED EC",
| ^~~~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:873:29: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
873 | [ESR_ELx_EC_WATCHPT_LOW] = "Watchpoint (lower EL)",
| ^~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:833:28: note: previous initialization is here
833 | [0 ... ESR_ELx_EC_MAX] = "UNRECOGNIZED EC",
| ^~~~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:874:29: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
874 | [ESR_ELx_EC_WATCHPT_CUR] = "Watchpoint (current EL)",
| ^~~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:833:28: note: previous initialization is here
833 | [0 ... ESR_ELx_EC_MAX] = "UNRECOGNIZED EC",
| ^~~~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:875:25: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
875 | [ESR_ELx_EC_BKPT32] = "BKPT (AArch32)",
| ^~~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:833:28: note: previous initialization is here
833 | [0 ... ESR_ELx_EC_MAX] = "UNRECOGNIZED EC",
| ^~~~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:876:27: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
876 | [ESR_ELx_EC_VECTOR32] = "Vector catch (AArch32)",
| ^~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:833:28: note: previous initialization is here
833 | [0 ... ESR_ELx_EC_MAX] = "UNRECOGNIZED EC",
| ^~~~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:877:24: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
877 | [ESR_ELx_EC_BRK64] = "BRK (AArch64)",
| ^~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:833:28: note: previous initialization is here
833 | [0 ... ESR_ELx_EC_MAX] = "UNRECOGNIZED EC",
| ^~~~~~~~~~~~~~~~~
>> arch/arm64/kernel/traps.c:1007:2: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough]
1007 | case BUG_TRAP_TYPE_WARN:
| ^
arch/arm64/kernel/traps.c:1007:2: note: insert 'break;' to avoid fall-through
1007 | case BUG_TRAP_TYPE_WARN:
| ^
| break;
45 warnings generated.
vim +1007 arch/arm64/kernel/traps.c
9fb7410f955f7a Dave P Martin 2015-07-24 1000
6adfdc5e2ef9c7 Ada Couprie Diaz 2025-07-07 1001 int bug_brk_handler(struct pt_regs *regs, unsigned long esr)
9fb7410f955f7a Dave P Martin 2015-07-24 1002 {
9fb7410f955f7a Dave P Martin 2015-07-24 1003 switch (report_bug(regs->pc, regs)) {
9fb7410f955f7a Dave P Martin 2015-07-24 1004 case BUG_TRAP_TYPE_BUG:
0f2cb928a1547a Mark Rutland 2022-09-13 1005 die("Oops - BUG", regs, esr);
9fb7410f955f7a Dave P Martin 2015-07-24 1006
9fb7410f955f7a Dave P Martin 2015-07-24 @1007 case BUG_TRAP_TYPE_WARN:
9fb7410f955f7a Dave P Martin 2015-07-24 1008 break;
9fb7410f955f7a Dave P Martin 2015-07-24 1009
9fb7410f955f7a Dave P Martin 2015-07-24 1010 default:
9fb7410f955f7a Dave P Martin 2015-07-24 1011 /* unknown/unrecognised bug trap type */
9fb7410f955f7a Dave P Martin 2015-07-24 1012 return DBG_HOOK_ERROR;
9fb7410f955f7a Dave P Martin 2015-07-24 1013 }
9fb7410f955f7a Dave P Martin 2015-07-24 1014
9fb7410f955f7a Dave P Martin 2015-07-24 1015 /* If thread survives, skip over the BUG instruction and continue: */
6436beeee5721a Julien Thierry 2017-10-25 1016 arm64_skip_faulting_instruction(regs, AARCH64_INSN_SIZE);
9fb7410f955f7a Dave P Martin 2015-07-24 1017 return DBG_HOOK_HANDLED;
9fb7410f955f7a Dave P Martin 2015-07-24 1018 }
9fb7410f955f7a Dave P Martin 2015-07-24 1019
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 5+ messages in thread