]> www.infradead.org Git - users/jedix/linux-maple.git/commit
LoongArch: Rework the arch_kgdb_breakpoint() implementation
authorYuli Wang <wangyuli@uniontech.com>
Sun, 30 Mar 2025 08:31:09 +0000 (16:31 +0800)
committerHuacai Chen <chenhuacai@loongson.cn>
Sun, 30 Mar 2025 08:31:09 +0000 (16:31 +0800)
commit29c92a41c6d2879c1f62220fe4758dce191bb38f
tree270ffef763e2c1be3934777dd8365ccabbd7052c
parent2e3bc71e4f394ecf8f499d21923cf556b4bfa1e7
LoongArch: Rework the arch_kgdb_breakpoint() implementation

The arch_kgdb_breakpoint() function defines the kgdb_breakinst symbol
using inline assembly.

1. There's a potential issue where the compiler might inline
arch_kgdb_breakpoint(), which would then define the kgdb_breakinst
symbol multiple times, leading to a linker error.

To prevent this, declare arch_kgdb_breakpoint() as noinline.

Fix follow error with LLVM-19 *only* when LTO_CLANG_FULL:
    LD      vmlinux.o
  ld.lld-19: error: ld-temp.o <inline asm>:3:1: symbol 'kgdb_breakinst' is already defined
  kgdb_breakinst: break 2
  ^

2. Remove "nop" in the inline assembly because it's meaningless for
LoongArch here.

3. Add "STACK_FRAME_NON_STANDARD" for arch_kgdb_breakpoint() to avoid
the objtool warning.

Fixes: e14dd076964e ("LoongArch: Add basic KGDB & KDB support")
Tested-by: Binbin Zhou <zhoubinbin@loongson.cn>
Co-developed-by: Winston Wen <wentao@uniontech.com>
Signed-off-by: Winston Wen <wentao@uniontech.com>
Co-developed-by: Wentao Guan <guanwentao@uniontech.com>
Signed-off-by: Wentao Guan <guanwentao@uniontech.com>
Signed-off-by: Yuli Wang <wangyuli@uniontech.com>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
arch/loongarch/kernel/kgdb.c