]> git.apps.os.sepia.ceph.com Git - ceph-client.git/commit
objtool/LoongArch: Mark special atomic instruction as INSN_BUG type
authorTiezhu Yang <yangtiezhu@loongson.cn>
Thu, 18 Sep 2025 11:43:36 +0000 (19:43 +0800)
committerHuacai Chen <chenhuacai@loongson.cn>
Thu, 18 Sep 2025 11:43:36 +0000 (19:43 +0800)
commit539d7344d4feaea37e05863e9aa86bd31f28e46f
tree80616f1d9dea0b225d72634d68ed6b291ee3742e
parentbaad7830ee9a56756b3857348452fe756cb0a702
objtool/LoongArch: Mark special atomic instruction as INSN_BUG type

When compiling with LLVM and CONFIG_RUST is set, there exists the
following objtool warning:

  rust/compiler_builtins.o: warning: objtool: __rust__unordsf2(): unexpected end of section .text.unlikely.

objdump shows that the end of section .text.unlikely is an atomic
instruction:

  amswap.w        $zero, $ra, $zero

According to the LoongArch Reference Manual, if the amswap.w atomic
memory access instruction has the same register number as rd and rj,
the execution will trigger an Instruction Non-defined Exception, so
mark the above instruction as INSN_BUG type to fix the warning.

Cc: stable@vger.kernel.org
Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
tools/arch/loongarch/include/asm/inst.h
tools/objtool/arch/loongarch/decode.c