loongarch.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH 0/2] Fix objtool warnings if LTO is enabled for LoongArch (Part 2)
@ 2025-08-26  6:46 Tiezhu Yang
  2025-08-26  6:46 ` [RFC PATCH 1/2] objtool/LoongArch: Fix fall through warning about efi_boot_kernel() Tiezhu Yang
  2025-08-26  6:46 ` [RFC PATCH 2/2] objtool/LoongArch: Fix unreachable instruction warnings about head.S Tiezhu Yang
  0 siblings, 2 replies; 14+ messages in thread
From: Tiezhu Yang @ 2025-08-26  6:46 UTC (permalink / raw)
  To: Huacai Chen, Josh Poimboeuf, Peter Zijlstra, Nathan Chancellor
  Cc: loongarch, linux-kernel

The previous series is to fix most of the warnings (total 3030):

  sibling call from callable instruction with modified stack frame

This series is a follow up to fix 2 kinds of warnings (total 24), it only
touches the LoongArch related code:

  falls through to next function
  unreachable instruction

With this series, there is only 1 kind of warning (total 3), it does not
only touch the LoongArch related code:

  missing __noreturn in .c/.h or NORETURN() in noreturns.h

In order to silence the above warnings, it needs to change the related
code to give the functions __noreturn attribute, and have a NORETURN()
annotation in tools/objtool/noreturns.h. IMO, it will touch all of the
archs and the generic code, so this needs much more work to avoid the
side effect or regression, once it is done I will send out the patch.

Tiezhu Yang (2):
  objtool/LoongArch: Fix fall through warning about efi_boot_kernel()
  objtool/LoongArch: Fix unreachable instruction warnings about head.S

 arch/loongarch/kernel/head.S             | 8 ++++----
 drivers/firmware/efi/libstub/loongarch.c | 5 ++++-
 2 files changed, 8 insertions(+), 5 deletions(-)

-- 
2.42.0


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [RFC PATCH 1/2] objtool/LoongArch: Fix fall through warning about efi_boot_kernel()
  2025-08-26  6:46 [RFC PATCH 0/2] Fix objtool warnings if LTO is enabled for LoongArch (Part 2) Tiezhu Yang
@ 2025-08-26  6:46 ` Tiezhu Yang
  2025-08-26  8:32   ` Huacai Chen
  2025-08-26  6:46 ` [RFC PATCH 2/2] objtool/LoongArch: Fix unreachable instruction warnings about head.S Tiezhu Yang
  1 sibling, 1 reply; 14+ messages in thread
From: Tiezhu Yang @ 2025-08-26  6:46 UTC (permalink / raw)
  To: Huacai Chen, Josh Poimboeuf, Peter Zijlstra, Nathan Chancellor
  Cc: loongarch, linux-kernel

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

  vmlinux.o: warning: objtool: __efistub_efi_boot_kernel()
  falls through to next function __efistub_exit_boot_func()

This is because efi_boot_kernel() doesn't end with a return instruction
or an unconditional jump, then objtool has determined that the function
can fall through into the next function.

Actually, efi_boot_kernel()'s last instruction is "jirl $ra, $a3, 0", it
is a call to a noreturn function pointer real_kernel_entry() which points
to the symbol kernel_entry() in arch/loongarch/kernel/head.S.

drivers/firmware/efi/libstub/loongarch.c:

typedef void __noreturn (*kernel_entry_t)(bool efi, unsigned long cmdline,
					  unsigned long systab);

efi_status_t efi_boot_kernel(void *handle, efi_loaded_image_t *image,
			     unsigned long kernel_addr, char *cmdline_ptr)
{
	kernel_entry_t real_kernel_entry;
	...
	real_kernel_entry = (void *)kernel_entry_address(kernel_addr, image);

	real_kernel_entry(true, (unsigned long)cmdline_ptr,
			  (unsigned long)efi_system_table);
}

According to the description of tools/objtool/Documentation/objtool.txt,
in order to silence this warning, at the beginning just add the noreturn
real_kernel_entry() to objtool's hard-coded global_noreturns array, but
there is no effect, because it is not a valid symbol.

There exists an alternative way to silence this warning, the first thing
is to remove the attribute __noreturn for real_kernel_entry(), otherwise
the compiler can not generate instructions after that, and then just add
"while (1);" at the end of efi_boot_kernel(), so that efi_boot_kernel()
ends with an unconditional jump instruction "b".

Note that at the end of efi_boot_kernel(), using unreachable() has no
effect because it can still generate fall-through code, using BUG() is
not proper because it will generate the following ld.lld warning:

  vmlinux.o:(.init__bug_table) is being placed in '.init__bug_table'

Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
---
 drivers/firmware/efi/libstub/loongarch.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/firmware/efi/libstub/loongarch.c b/drivers/firmware/efi/libstub/loongarch.c
index 3782d0a187d1..e309fd78fca7 100644
--- a/drivers/firmware/efi/libstub/loongarch.c
+++ b/drivers/firmware/efi/libstub/loongarch.c
@@ -10,7 +10,7 @@
 #include "efistub.h"
 #include "loongarch-stub.h"
 
-typedef void __noreturn (*kernel_entry_t)(bool efi, unsigned long cmdline,
+typedef void (*kernel_entry_t)(bool efi, unsigned long cmdline,
 					  unsigned long systab);
 
 efi_status_t check_platform_features(void)
@@ -81,4 +81,7 @@ efi_status_t efi_boot_kernel(void *handle, efi_loaded_image_t *image,
 
 	real_kernel_entry(true, (unsigned long)cmdline_ptr,
 			  (unsigned long)efi_system_table);
+
+	/* We should never get here */
+	while (1);
 }
-- 
2.42.0


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [RFC PATCH 2/2] objtool/LoongArch: Fix unreachable instruction warnings about head.S
  2025-08-26  6:46 [RFC PATCH 0/2] Fix objtool warnings if LTO is enabled for LoongArch (Part 2) Tiezhu Yang
  2025-08-26  6:46 ` [RFC PATCH 1/2] objtool/LoongArch: Fix fall through warning about efi_boot_kernel() Tiezhu Yang
@ 2025-08-26  6:46 ` Tiezhu Yang
  2025-08-26  8:20   ` Peter Zijlstra
  2025-08-26  8:26   ` Huacai Chen
  1 sibling, 2 replies; 14+ messages in thread
From: Tiezhu Yang @ 2025-08-26  6:46 UTC (permalink / raw)
  To: Huacai Chen, Josh Poimboeuf, Peter Zijlstra, Nathan Chancellor
  Cc: loongarch, linux-kernel

When compiling with LLVM and CONFIG_LTO_CLANG is set, there exist the
following objtool warnings after silencing all of the other warnings:

  LD      vmlinux.o
vmlinux.o: warning: objtool: .head.text+0x0: unreachable instruction
vmlinux.o: warning: objtool: .head.text+0x18: unreachable instruction
vmlinux.o: warning: objtool: .head.text+0x38: unreachable instruction
vmlinux.o: warning: objtool: .head.text+0x3c: unreachable instruction
vmlinux.o: warning: objtool: .head.text+0x40: unreachable instruction
vmlinux.o: warning: objtool: .head.text+0x44: unreachable instruction
vmlinux.o: warning: objtool: .head.text+0x54: unreachable instruction
vmlinux.o: warning: objtool: .head.text+0x58: unreachable instruction
vmlinux.o: warning: objtool: .head.text+0x6c: unreachable instruction
vmlinux.o: warning: objtool: .head.text+0x84: unreachable instruction
vmlinux.o: warning: objtool: .head.text+0x94: unreachable instruction
vmlinux.o: warning: objtool: .head.text+0x9c: unreachable instruction
vmlinux.o: warning: objtool: .head.text+0xc4: unreachable instruction
vmlinux.o: warning: objtool: .head.text+0xf8: unreachable instruction
vmlinux.o: warning: objtool: .head.text+0xfc: unreachable instruction
vmlinux.o: warning: objtool: .head.text+0x104: unreachable instruction
vmlinux.o: warning: objtool: .head.text+0x10c: unreachable instruction
vmlinux.o: warning: objtool: .head.text+0x11c: unreachable instruction
vmlinux.o: warning: objtool: .head.text+0x120: unreachable instruction
vmlinux.o: warning: objtool: .head.text+0x124: unreachable instruction
vmlinux.o: warning: objtool: .head.text+0x144: unreachable instruction
vmlinux.o: warning: objtool: kernel_entry+0x0: unreachable instruction
vmlinux.o: warning: objtool: smpboot_entry+0x0: unreachable instruction

All of the above instructions are in arch/loongarch/kernel/head.S,
and there is "OBJECT_FILES_NON_STANDARD_head.o := y" in Makefile
to skip objtool checking for head.o, but OBJECT_FILES_NON_STANDARD
does not work for link time validation of vmlinux.o according to
tools/objtool/Documentation/objtool.txt.

Just give a proper unwind hint to silence the above warnings. By the way,
the previous instructions of kernel_entry+0xf4 and smpboot_entry+0x68 are
the 'bl' instructions, the call destination symbols are start_kernel() and
start_secondary() which are noreturn functions, then the 'bl' instructions
are marked as dead end in annotate_call_site(), so actually ASM_BUG() can
be removed due to unnecessary, otherwise there are following warnings:

  kernel_entry+0xf4: start_kernel() missing __noreturn
  in .c/.h or NORETURN() in noreturns.h

  smpboot_entry+0x68: start_secondary() missing __noreturn
  in .c/.h or NORETURN() in noreturns.h

Link: https://lore.kernel.org/lkml/20250814083651.GR4067720@noisy.programming.kicks-ass.net/
Suggested-by: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
---
 arch/loongarch/kernel/head.S | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/loongarch/kernel/head.S b/arch/loongarch/kernel/head.S
index e3865e92a917..566a1dbf5fa0 100644
--- a/arch/loongarch/kernel/head.S
+++ b/arch/loongarch/kernel/head.S
@@ -20,6 +20,7 @@
 	__HEAD
 
 _head:
+	UNWIND_HINT_UNDEFINED
 	.word	IMAGE_DOS_SIGNATURE	/* "MZ", MS-DOS header */
 	.org	0x8
 	.dword	_kernel_entry		/* Kernel entry point (physical address) */
@@ -30,6 +31,7 @@ _head:
 	.long	pe_header - _head	/* Offset to the PE header */
 
 pe_header:
+	UNWIND_HINT_UNDEFINED
 	__EFI_PE_HEADER
 
 SYM_DATA(kernel_asize, .long _kernel_asize);
@@ -42,6 +44,7 @@ SYM_DATA(kernel_fsize, .long _kernel_fsize);
 	.align 12
 
 SYM_CODE_START(kernel_entry)			# kernel entry point
+	UNWIND_HINT_UNDEFINED
 
 	/* Config direct window and set PG */
 	SETUP_DMWINS	t0
@@ -109,8 +112,6 @@ SYM_CODE_START(kernel_entry)			# kernel entry point
 #endif
 
 	bl		start_kernel
-	ASM_BUG()
-
 SYM_CODE_END(kernel_entry)
 
 #ifdef CONFIG_SMP
@@ -120,6 +121,7 @@ SYM_CODE_END(kernel_entry)
  * function after setting up the stack and tp registers.
  */
 SYM_CODE_START(smpboot_entry)
+	UNWIND_HINT_UNDEFINED
 
 	SETUP_DMWINS	t0
 	JUMP_VIRT_ADDR	t0, t1
@@ -142,8 +144,6 @@ SYM_CODE_START(smpboot_entry)
 	ld.d		tp, t0, CPU_BOOT_TINFO
 
 	bl		start_secondary
-	ASM_BUG()
-
 SYM_CODE_END(smpboot_entry)
 
 #endif /* CONFIG_SMP */
-- 
2.42.0


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [RFC PATCH 2/2] objtool/LoongArch: Fix unreachable instruction warnings about head.S
  2025-08-26  6:46 ` [RFC PATCH 2/2] objtool/LoongArch: Fix unreachable instruction warnings about head.S Tiezhu Yang
@ 2025-08-26  8:20   ` Peter Zijlstra
  2025-08-26 12:27     ` Tiezhu Yang
  2025-08-26  8:26   ` Huacai Chen
  1 sibling, 1 reply; 14+ messages in thread
From: Peter Zijlstra @ 2025-08-26  8:20 UTC (permalink / raw)
  To: Tiezhu Yang
  Cc: Huacai Chen, Josh Poimboeuf, Nathan Chancellor, loongarch,
	linux-kernel

On Tue, Aug 26, 2025 at 02:46:31PM +0800, Tiezhu Yang wrote:
> When compiling with LLVM and CONFIG_LTO_CLANG is set, there exist the
> following objtool warnings after silencing all of the other warnings:
> 
>   LD      vmlinux.o
> vmlinux.o: warning: objtool: .head.text+0x0: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0x18: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0x38: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0x3c: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0x40: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0x44: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0x54: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0x58: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0x6c: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0x84: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0x94: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0x9c: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0xc4: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0xf8: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0xfc: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0x104: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0x10c: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0x11c: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0x120: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0x124: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0x144: unreachable instruction
> vmlinux.o: warning: objtool: kernel_entry+0x0: unreachable instruction
> vmlinux.o: warning: objtool: smpboot_entry+0x0: unreachable instruction
> 
> All of the above instructions are in arch/loongarch/kernel/head.S,
> and there is "OBJECT_FILES_NON_STANDARD_head.o := y" in Makefile
> to skip objtool checking for head.o, but OBJECT_FILES_NON_STANDARD
> does not work for link time validation of vmlinux.o according to
> tools/objtool/Documentation/objtool.txt.
> 
> Just give a proper unwind hint to silence the above warnings. By the way,
> the previous instructions of kernel_entry+0xf4 and smpboot_entry+0x68 are
> the 'bl' instructions, the call destination symbols are start_kernel() and
> start_secondary() which are noreturn functions, then the 'bl' instructions
> are marked as dead end in annotate_call_site(), so actually ASM_BUG() can
> be removed due to unnecessary, otherwise there are following warnings:
> 
>   kernel_entry+0xf4: start_kernel() missing __noreturn
>   in .c/.h or NORETURN() in noreturns.h
> 
>   smpboot_entry+0x68: start_secondary() missing __noreturn
>   in .c/.h or NORETURN() in noreturns.h
> 
> Link: https://lore.kernel.org/lkml/20250814083651.GR4067720@noisy.programming.kicks-ass.net/
> Suggested-by: Peter Zijlstra <peterz@infradead.org>
> Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
> ---
>  arch/loongarch/kernel/head.S | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)

At this point you should also be able to remove that Makefile thing,
right?


> diff --git a/arch/loongarch/kernel/head.S b/arch/loongarch/kernel/head.S
> index e3865e92a917..566a1dbf5fa0 100644
> --- a/arch/loongarch/kernel/head.S
> +++ b/arch/loongarch/kernel/head.S
> @@ -20,6 +20,7 @@
>  	__HEAD
>  
>  _head:
> +	UNWIND_HINT_UNDEFINED
>  	.word	IMAGE_DOS_SIGNATURE	/* "MZ", MS-DOS header */
>  	.org	0x8
>  	.dword	_kernel_entry		/* Kernel entry point (physical address) */
> @@ -30,6 +31,7 @@ _head:
>  	.long	pe_header - _head	/* Offset to the PE header */
>  
>  pe_header:
> +	UNWIND_HINT_UNDEFINED
>  	__EFI_PE_HEADER
>  
>  SYM_DATA(kernel_asize, .long _kernel_asize);
> @@ -42,6 +44,7 @@ SYM_DATA(kernel_fsize, .long _kernel_fsize);
>  	.align 12
>  
>  SYM_CODE_START(kernel_entry)			# kernel entry point
> +	UNWIND_HINT_UNDEFINED
>  
>  	/* Config direct window and set PG */
>  	SETUP_DMWINS	t0
> @@ -109,8 +112,6 @@ SYM_CODE_START(kernel_entry)			# kernel entry point
>  #endif
>  
>  	bl		start_kernel
> -	ASM_BUG()
> -
>  SYM_CODE_END(kernel_entry)
>  
>  #ifdef CONFIG_SMP
> @@ -120,6 +121,7 @@ SYM_CODE_END(kernel_entry)
>   * function after setting up the stack and tp registers.
>   */
>  SYM_CODE_START(smpboot_entry)
> +	UNWIND_HINT_UNDEFINED
>  
>  	SETUP_DMWINS	t0
>  	JUMP_VIRT_ADDR	t0, t1
> @@ -142,8 +144,6 @@ SYM_CODE_START(smpboot_entry)
>  	ld.d		tp, t0, CPU_BOOT_TINFO
>  
>  	bl		start_secondary
> -	ASM_BUG()
> -
>  SYM_CODE_END(smpboot_entry)
>  
>  #endif /* CONFIG_SMP */
> -- 
> 2.42.0
> 

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [RFC PATCH 2/2] objtool/LoongArch: Fix unreachable instruction warnings about head.S
  2025-08-26  6:46 ` [RFC PATCH 2/2] objtool/LoongArch: Fix unreachable instruction warnings about head.S Tiezhu Yang
  2025-08-26  8:20   ` Peter Zijlstra
@ 2025-08-26  8:26   ` Huacai Chen
  2025-08-26 12:30     ` Tiezhu Yang
  1 sibling, 1 reply; 14+ messages in thread
From: Huacai Chen @ 2025-08-26  8:26 UTC (permalink / raw)
  To: Tiezhu Yang
  Cc: Josh Poimboeuf, Peter Zijlstra, Nathan Chancellor, loongarch,
	linux-kernel

On Tue, Aug 26, 2025 at 2:46 PM Tiezhu Yang <yangtiezhu@loongson.cn> wrote:
>
> When compiling with LLVM and CONFIG_LTO_CLANG is set, there exist the
> following objtool warnings after silencing all of the other warnings:
>
>   LD      vmlinux.o
> vmlinux.o: warning: objtool: .head.text+0x0: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0x18: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0x38: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0x3c: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0x40: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0x44: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0x54: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0x58: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0x6c: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0x84: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0x94: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0x9c: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0xc4: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0xf8: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0xfc: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0x104: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0x10c: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0x11c: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0x120: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0x124: unreachable instruction
> vmlinux.o: warning: objtool: .head.text+0x144: unreachable instruction
> vmlinux.o: warning: objtool: kernel_entry+0x0: unreachable instruction
> vmlinux.o: warning: objtool: smpboot_entry+0x0: unreachable instruction
>
> All of the above instructions are in arch/loongarch/kernel/head.S,
> and there is "OBJECT_FILES_NON_STANDARD_head.o := y" in Makefile
> to skip objtool checking for head.o, but OBJECT_FILES_NON_STANDARD
> does not work for link time validation of vmlinux.o according to
> tools/objtool/Documentation/objtool.txt.
>
> Just give a proper unwind hint to silence the above warnings. By the way,
> the previous instructions of kernel_entry+0xf4 and smpboot_entry+0x68 are
> the 'bl' instructions, the call destination symbols are start_kernel() and
> start_secondary() which are noreturn functions, then the 'bl' instructions
> are marked as dead end in annotate_call_site(), so actually ASM_BUG() can
> be removed due to unnecessary, otherwise there are following warnings:
>
>   kernel_entry+0xf4: start_kernel() missing __noreturn
>   in .c/.h or NORETURN() in noreturns.h
>
>   smpboot_entry+0x68: start_secondary() missing __noreturn
>   in .c/.h or NORETURN() in noreturns.h
>
> Link: https://lore.kernel.org/lkml/20250814083651.GR4067720@noisy.programming.kicks-ass.net/
> Suggested-by: Peter Zijlstra <peterz@infradead.org>
> Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
> ---
>  arch/loongarch/kernel/head.S | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/arch/loongarch/kernel/head.S b/arch/loongarch/kernel/head.S
> index e3865e92a917..566a1dbf5fa0 100644
> --- a/arch/loongarch/kernel/head.S
> +++ b/arch/loongarch/kernel/head.S
> @@ -20,6 +20,7 @@
>         __HEAD
>
>  _head:
> +       UNWIND_HINT_UNDEFINED
>         .word   IMAGE_DOS_SIGNATURE     /* "MZ", MS-DOS header */
>         .org    0x8
>         .dword  _kernel_entry           /* Kernel entry point (physical address) */
> @@ -30,6 +31,7 @@ _head:
>         .long   pe_header - _head       /* Offset to the PE header */
>
>  pe_header:
> +       UNWIND_HINT_UNDEFINED
>         __EFI_PE_HEADER
The efi header is completely not code, the annotations are very strange.

Huacai

>
>  SYM_DATA(kernel_asize, .long _kernel_asize);
> @@ -42,6 +44,7 @@ SYM_DATA(kernel_fsize, .long _kernel_fsize);
>         .align 12
>
>  SYM_CODE_START(kernel_entry)                   # kernel entry point
> +       UNWIND_HINT_UNDEFINED
>
>         /* Config direct window and set PG */
>         SETUP_DMWINS    t0
> @@ -109,8 +112,6 @@ SYM_CODE_START(kernel_entry)                        # kernel entry point
>  #endif
>
>         bl              start_kernel
> -       ASM_BUG()
> -
>  SYM_CODE_END(kernel_entry)
>
>  #ifdef CONFIG_SMP
> @@ -120,6 +121,7 @@ SYM_CODE_END(kernel_entry)
>   * function after setting up the stack and tp registers.
>   */
>  SYM_CODE_START(smpboot_entry)
> +       UNWIND_HINT_UNDEFINED
>
>         SETUP_DMWINS    t0
>         JUMP_VIRT_ADDR  t0, t1
> @@ -142,8 +144,6 @@ SYM_CODE_START(smpboot_entry)
>         ld.d            tp, t0, CPU_BOOT_TINFO
>
>         bl              start_secondary
> -       ASM_BUG()
> -
>  SYM_CODE_END(smpboot_entry)
>
>  #endif /* CONFIG_SMP */
> --
> 2.42.0
>

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [RFC PATCH 1/2] objtool/LoongArch: Fix fall through warning about efi_boot_kernel()
  2025-08-26  6:46 ` [RFC PATCH 1/2] objtool/LoongArch: Fix fall through warning about efi_boot_kernel() Tiezhu Yang
@ 2025-08-26  8:32   ` Huacai Chen
  2025-08-26 12:33     ` Tiezhu Yang
  0 siblings, 1 reply; 14+ messages in thread
From: Huacai Chen @ 2025-08-26  8:32 UTC (permalink / raw)
  To: Tiezhu Yang
  Cc: Josh Poimboeuf, Peter Zijlstra, Nathan Chancellor, loongarch,
	linux-kernel

On Tue, Aug 26, 2025 at 2:46 PM Tiezhu Yang <yangtiezhu@loongson.cn> wrote:
>
> When compiling with LLVM and CONFIG_LTO_CLANG is set, there exists
> the following objtool warning:
>
>   vmlinux.o: warning: objtool: __efistub_efi_boot_kernel()
>   falls through to next function __efistub_exit_boot_func()
>
> This is because efi_boot_kernel() doesn't end with a return instruction
> or an unconditional jump, then objtool has determined that the function
> can fall through into the next function.
>
> Actually, efi_boot_kernel()'s last instruction is "jirl $ra, $a3, 0", it
> is a call to a noreturn function pointer real_kernel_entry() which points
> to the symbol kernel_entry() in arch/loongarch/kernel/head.S.
>
> drivers/firmware/efi/libstub/loongarch.c:
>
> typedef void __noreturn (*kernel_entry_t)(bool efi, unsigned long cmdline,
>                                           unsigned long systab);
>
> efi_status_t efi_boot_kernel(void *handle, efi_loaded_image_t *image,
>                              unsigned long kernel_addr, char *cmdline_ptr)
> {
>         kernel_entry_t real_kernel_entry;
>         ...
>         real_kernel_entry = (void *)kernel_entry_address(kernel_addr, image);
>
>         real_kernel_entry(true, (unsigned long)cmdline_ptr,
>                           (unsigned long)efi_system_table);
> }
>
> According to the description of tools/objtool/Documentation/objtool.txt,
> in order to silence this warning, at the beginning just add the noreturn
> real_kernel_entry() to objtool's hard-coded global_noreturns array, but
> there is no effect, because it is not a valid symbol.
>
> There exists an alternative way to silence this warning, the first thing
> is to remove the attribute __noreturn for real_kernel_entry(), otherwise
> the compiler can not generate instructions after that, and then just add
> "while (1);" at the end of efi_boot_kernel(), so that efi_boot_kernel()
> ends with an unconditional jump instruction "b".
>
> Note that at the end of efi_boot_kernel(), using unreachable() has no
> effect because it can still generate fall-through code, using BUG() is
> not proper because it will generate the following ld.lld warning:
>
>   vmlinux.o:(.init__bug_table) is being placed in '.init__bug_table'
>
> Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
> ---
>  drivers/firmware/efi/libstub/loongarch.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/firmware/efi/libstub/loongarch.c b/drivers/firmware/efi/libstub/loongarch.c
> index 3782d0a187d1..e309fd78fca7 100644
> --- a/drivers/firmware/efi/libstub/loongarch.c
> +++ b/drivers/firmware/efi/libstub/loongarch.c
> @@ -10,7 +10,7 @@
>  #include "efistub.h"
>  #include "loongarch-stub.h"
>
> -typedef void __noreturn (*kernel_entry_t)(bool efi, unsigned long cmdline,
> +typedef void (*kernel_entry_t)(bool efi, unsigned long cmdline,
>                                           unsigned long systab);
From my point of view this is incorrect, this function is indeed a
noreturn function, and this modification makes LoongArch different to
other architectures.

Maybe it is better to let objtool ignore the whole
drivers/firmware/efi/libstub directory. Because efistub is discarded
at runtime so it is useless for stack unwinder.

Huacai

>
>  efi_status_t check_platform_features(void)
> @@ -81,4 +81,7 @@ efi_status_t efi_boot_kernel(void *handle, efi_loaded_image_t *image,
>
>         real_kernel_entry(true, (unsigned long)cmdline_ptr,
>                           (unsigned long)efi_system_table);
> +
> +       /* We should never get here */
> +       while (1);
>  }
> --
> 2.42.0
>

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [RFC PATCH 2/2] objtool/LoongArch: Fix unreachable instruction warnings about head.S
  2025-08-26  8:20   ` Peter Zijlstra
@ 2025-08-26 12:27     ` Tiezhu Yang
  0 siblings, 0 replies; 14+ messages in thread
From: Tiezhu Yang @ 2025-08-26 12:27 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: Huacai Chen, Josh Poimboeuf, Nathan Chancellor, loongarch,
	linux-kernel

On 2025/8/26 下午4:20, Peter Zijlstra wrote:
> On Tue, Aug 26, 2025 at 02:46:31PM +0800, Tiezhu Yang wrote:
>> When compiling with LLVM and CONFIG_LTO_CLANG is set, there exist the
>> following objtool warnings after silencing all of the other warnings:

...

>> Just give a proper unwind hint to silence the above warnings. By the way,
>> the previous instructions of kernel_entry+0xf4 and smpboot_entry+0x68 are
>> the 'bl' instructions, the call destination symbols are start_kernel() and
>> start_secondary() which are noreturn functions, then the 'bl' instructions
>> are marked as dead end in annotate_call_site(), so actually ASM_BUG() can
>> be removed due to unnecessary, otherwise there are following warnings:

...

>> Link: https://lore.kernel.org/lkml/20250814083651.GR4067720@noisy.programming.kicks-ass.net/
>> Suggested-by: Peter Zijlstra <peterz@infradead.org>
>> Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
>> ---
>>   arch/loongarch/kernel/head.S | 8 ++++----
>>   1 file changed, 4 insertions(+), 4 deletions(-)
> 
> At this point you should also be able to remove that Makefile thing,
> right?

Yes, you are right, will do it in the next version if this patch
makes sense.

Thanks,
Tiezhu


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [RFC PATCH 2/2] objtool/LoongArch: Fix unreachable instruction warnings about head.S
  2025-08-26  8:26   ` Huacai Chen
@ 2025-08-26 12:30     ` Tiezhu Yang
  2025-08-26 23:43       ` Josh Poimboeuf
  0 siblings, 1 reply; 14+ messages in thread
From: Tiezhu Yang @ 2025-08-26 12:30 UTC (permalink / raw)
  To: Huacai Chen
  Cc: Josh Poimboeuf, Peter Zijlstra, Nathan Chancellor, loongarch,
	linux-kernel

On 2025/8/26 下午4:26, Huacai Chen wrote:
> On Tue, Aug 26, 2025 at 2:46 PM Tiezhu Yang <yangtiezhu@loongson.cn> wrote:
>>
>> When compiling with LLVM and CONFIG_LTO_CLANG is set, there exist the
>> following objtool warnings after silencing all of the other warnings:

...

>>   arch/loongarch/kernel/head.S | 8 ++++----
>>   1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/arch/loongarch/kernel/head.S b/arch/loongarch/kernel/head.S
>> index e3865e92a917..566a1dbf5fa0 100644
>> --- a/arch/loongarch/kernel/head.S
>> +++ b/arch/loongarch/kernel/head.S
>> @@ -20,6 +20,7 @@
>>          __HEAD
>>
>>   _head:
>> +       UNWIND_HINT_UNDEFINED
>>          .word   IMAGE_DOS_SIGNATURE     /* "MZ", MS-DOS header */
>>          .org    0x8
>>          .dword  _kernel_entry           /* Kernel entry point (physical address) */
>> @@ -30,6 +31,7 @@ _head:
>>          .long   pe_header - _head       /* Offset to the PE header */
>>
>>   pe_header:
>> +       UNWIND_HINT_UNDEFINED
>>          __EFI_PE_HEADER
> The efi header is completely not code, the annotations are very strange.

Yes, I think so too, but the aim is only to not checking for objtool,
it seems no other better way.

Thanks,
Tiezhu


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [RFC PATCH 1/2] objtool/LoongArch: Fix fall through warning about efi_boot_kernel()
  2025-08-26  8:32   ` Huacai Chen
@ 2025-08-26 12:33     ` Tiezhu Yang
  2025-08-26 13:03       ` Huacai Chen
  0 siblings, 1 reply; 14+ messages in thread
From: Tiezhu Yang @ 2025-08-26 12:33 UTC (permalink / raw)
  To: Huacai Chen
  Cc: Josh Poimboeuf, Peter Zijlstra, Nathan Chancellor, loongarch,
	linux-kernel

On 2025/8/26 下午4:32, Huacai Chen wrote:
> On Tue, Aug 26, 2025 at 2:46 PM Tiezhu Yang <yangtiezhu@loongson.cn> wrote:
>>
>> When compiling with LLVM and CONFIG_LTO_CLANG is set, there exists
>> the following objtool warning:
>>
>>    vmlinux.o: warning: objtool: __efistub_efi_boot_kernel()
>>    falls through to next function __efistub_exit_boot_func()

...

>> -typedef void __noreturn (*kernel_entry_t)(bool efi, unsigned long cmdline,
>> +typedef void (*kernel_entry_t)(bool efi, unsigned long cmdline,
>>                                            unsigned long systab);
>  From my point of view this is incorrect, this function is indeed a
> noreturn function, and this modification makes LoongArch different to
> other architectures.
> 
> Maybe it is better to let objtool ignore the whole
> drivers/firmware/efi/libstub directory. Because efistub is discarded
> at runtime so it is useless for stack unwinder.

I tested the following change but there is no effect, the objtool
warning still exists, this is because OBJECT_FILES_NON_STANDARD
does not work for link time validation of vmlinux.o according to
tools/objtool/Documentation/objtool.txt.

diff --git a/drivers/firmware/efi/Makefile b/drivers/firmware/efi/Makefile
index 8efbcf699e4f..f1fff48eea76 100644
--- a/drivers/firmware/efi/Makefile
+++ b/drivers/firmware/efi/Makefile
@@ -10,6 +10,8 @@
  #
  KASAN_SANITIZE_runtime-wrappers.o      := n

+OBJECT_FILES_NON_STANDARD              := y
+
  obj-$(CONFIG_ACPI_BGRT)                += efi-bgrt.o
  obj-$(CONFIG_EFI)                      += efi.o vars.o reboot.o 
memattr.o tpm.o
  obj-$(CONFIG_EFI)                      += memmap.o

Thanks,
Tiezhu


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [RFC PATCH 1/2] objtool/LoongArch: Fix fall through warning about efi_boot_kernel()
  2025-08-26 12:33     ` Tiezhu Yang
@ 2025-08-26 13:03       ` Huacai Chen
  2025-08-26 23:39         ` Josh Poimboeuf
  0 siblings, 1 reply; 14+ messages in thread
From: Huacai Chen @ 2025-08-26 13:03 UTC (permalink / raw)
  To: Tiezhu Yang
  Cc: Josh Poimboeuf, Peter Zijlstra, Nathan Chancellor, loongarch,
	linux-kernel

On Tue, Aug 26, 2025 at 8:33 PM Tiezhu Yang <yangtiezhu@loongson.cn> wrote:
>
> On 2025/8/26 下午4:32, Huacai Chen wrote:
> > On Tue, Aug 26, 2025 at 2:46 PM Tiezhu Yang <yangtiezhu@loongson.cn> wrote:
> >>
> >> When compiling with LLVM and CONFIG_LTO_CLANG is set, there exists
> >> the following objtool warning:
> >>
> >>    vmlinux.o: warning: objtool: __efistub_efi_boot_kernel()
> >>    falls through to next function __efistub_exit_boot_func()
>
> ...
>
> >> -typedef void __noreturn (*kernel_entry_t)(bool efi, unsigned long cmdline,
> >> +typedef void (*kernel_entry_t)(bool efi, unsigned long cmdline,
> >>                                            unsigned long systab);
> >  From my point of view this is incorrect, this function is indeed a
> > noreturn function, and this modification makes LoongArch different to
> > other architectures.
> >
> > Maybe it is better to let objtool ignore the whole
> > drivers/firmware/efi/libstub directory. Because efistub is discarded
> > at runtime so it is useless for stack unwinder.
>
> I tested the following change but there is no effect, the objtool
> warning still exists, this is because OBJECT_FILES_NON_STANDARD
> does not work for link time validation of vmlinux.o according to
> tools/objtool/Documentation/objtool.txt.
Then I think objtool needs to be improved to handle this case, this
problem is not arch specific.

Huacai

>
> diff --git a/drivers/firmware/efi/Makefile b/drivers/firmware/efi/Makefile
> index 8efbcf699e4f..f1fff48eea76 100644
> --- a/drivers/firmware/efi/Makefile
> +++ b/drivers/firmware/efi/Makefile
> @@ -10,6 +10,8 @@
>   #
>   KASAN_SANITIZE_runtime-wrappers.o      := n
>
> +OBJECT_FILES_NON_STANDARD              := y
> +
>   obj-$(CONFIG_ACPI_BGRT)                += efi-bgrt.o
>   obj-$(CONFIG_EFI)                      += efi.o vars.o reboot.o
> memattr.o tpm.o
>   obj-$(CONFIG_EFI)                      += memmap.o
>
> Thanks,
> Tiezhu
>
>

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [RFC PATCH 1/2] objtool/LoongArch: Fix fall through warning about efi_boot_kernel()
  2025-08-26 13:03       ` Huacai Chen
@ 2025-08-26 23:39         ` Josh Poimboeuf
  2025-08-28  2:01           ` Tiezhu Yang
  0 siblings, 1 reply; 14+ messages in thread
From: Josh Poimboeuf @ 2025-08-26 23:39 UTC (permalink / raw)
  To: Huacai Chen
  Cc: Tiezhu Yang, Peter Zijlstra, Nathan Chancellor, loongarch,
	linux-kernel

On Tue, Aug 26, 2025 at 09:03:34PM +0800, Huacai Chen wrote:
> On Tue, Aug 26, 2025 at 8:33 PM Tiezhu Yang <yangtiezhu@loongson.cn> wrote:
> >
> > On 2025/8/26 下午4:32, Huacai Chen wrote:
> > > On Tue, Aug 26, 2025 at 2:46 PM Tiezhu Yang <yangtiezhu@loongson.cn> wrote:
> > >>
> > >> When compiling with LLVM and CONFIG_LTO_CLANG is set, there exists
> > >> the following objtool warning:
> > >>
> > >>    vmlinux.o: warning: objtool: __efistub_efi_boot_kernel()
> > >>    falls through to next function __efistub_exit_boot_func()
> >
> > ...
> >
> > >> -typedef void __noreturn (*kernel_entry_t)(bool efi, unsigned long cmdline,
> > >> +typedef void (*kernel_entry_t)(bool efi, unsigned long cmdline,
> > >>                                            unsigned long systab);
> > >  From my point of view this is incorrect, this function is indeed a
> > > noreturn function, and this modification makes LoongArch different to
> > > other architectures.
> > >
> > > Maybe it is better to let objtool ignore the whole
> > > drivers/firmware/efi/libstub directory. Because efistub is discarded
> > > at runtime so it is useless for stack unwinder.
> >
> > I tested the following change but there is no effect, the objtool
> > warning still exists, this is because OBJECT_FILES_NON_STANDARD
> > does not work for link time validation of vmlinux.o according to
> > tools/objtool/Documentation/objtool.txt.
> Then I think objtool needs to be improved to handle this case, this
> problem is not arch specific.

Yeah, objtool should really be ignoring this code altogether.  On x86,
that's not a problem because the EFI stub code isn't linked into
vmlinux.o.  It gets linked in separately:

  $ git grep vmlinux-libs
  arch/x86/boot/compressed/Makefile:vmlinux-libs-$(CONFIG_EFI_STUB) += $(objtree)/drivers/firmware/efi/libstub/lib.a
  arch/x86/boot/compressed/Makefile:vmlinux-libs-$(CONFIG_X86_64) += $(objtree)/arch/x86/boot/startup/lib.a
  arch/x86/boot/compressed/Makefile:$(obj)/vmlinux: $(vmlinux-objs-y) $(vmlinux-libs-y) FORCE

IMO, the proper fix is to change the loongarch build to do the same.
vmlinux.o is intended to be proper kernel code.

-- 
Josh

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [RFC PATCH 2/2] objtool/LoongArch: Fix unreachable instruction warnings about head.S
  2025-08-26 12:30     ` Tiezhu Yang
@ 2025-08-26 23:43       ` Josh Poimboeuf
  2025-08-28  2:01         ` Tiezhu Yang
  0 siblings, 1 reply; 14+ messages in thread
From: Josh Poimboeuf @ 2025-08-26 23:43 UTC (permalink / raw)
  To: Tiezhu Yang
  Cc: Huacai Chen, Peter Zijlstra, Nathan Chancellor, loongarch,
	linux-kernel

On Tue, Aug 26, 2025 at 08:30:23PM +0800, Tiezhu Yang wrote:
> On 2025/8/26 下午4:26, Huacai Chen wrote:
> > On Tue, Aug 26, 2025 at 2:46 PM Tiezhu Yang <yangtiezhu@loongson.cn> wrote:
> > > 
> > > When compiling with LLVM and CONFIG_LTO_CLANG is set, there exist the
> > > following objtool warnings after silencing all of the other warnings:
> 
> ...
> 
> > >   arch/loongarch/kernel/head.S | 8 ++++----
> > >   1 file changed, 4 insertions(+), 4 deletions(-)
> > > 
> > > diff --git a/arch/loongarch/kernel/head.S b/arch/loongarch/kernel/head.S
> > > index e3865e92a917..566a1dbf5fa0 100644
> > > --- a/arch/loongarch/kernel/head.S
> > > +++ b/arch/loongarch/kernel/head.S
> > > @@ -20,6 +20,7 @@
> > >          __HEAD
> > > 
> > >   _head:
> > > +       UNWIND_HINT_UNDEFINED
> > >          .word   IMAGE_DOS_SIGNATURE     /* "MZ", MS-DOS header */
> > >          .org    0x8
> > >          .dword  _kernel_entry           /* Kernel entry point (physical address) */
> > > @@ -30,6 +31,7 @@ _head:
> > >          .long   pe_header - _head       /* Offset to the PE header */
> > > 
> > >   pe_header:
> > > +       UNWIND_HINT_UNDEFINED
> > >          __EFI_PE_HEADER
> > The efi header is completely not code, the annotations are very strange.
> 
> Yes, I think so too, but the aim is only to not checking for objtool,
> it seems no other better way.

Objtool is only getting confused because there's data in a text section.
Why not put that in a data section?

-- 
Josh

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [RFC PATCH 1/2] objtool/LoongArch: Fix fall through warning about efi_boot_kernel()
  2025-08-26 23:39         ` Josh Poimboeuf
@ 2025-08-28  2:01           ` Tiezhu Yang
  0 siblings, 0 replies; 14+ messages in thread
From: Tiezhu Yang @ 2025-08-28  2:01 UTC (permalink / raw)
  To: Josh Poimboeuf, Huacai Chen
  Cc: Peter Zijlstra, Nathan Chancellor, loongarch, linux-kernel

On 2025/8/27 上午7:39, Josh Poimboeuf wrote:
> On Tue, Aug 26, 2025 at 09:03:34PM +0800, Huacai Chen wrote:

...

>> Then I think objtool needs to be improved to handle this case, this
>> problem is not arch specific.
> 
> Yeah, objtool should really be ignoring this code altogether.  On x86,
> that's not a problem because the EFI stub code isn't linked into
> vmlinux.o.  It gets linked in separately:
> 
>    $ git grep vmlinux-libs
>    arch/x86/boot/compressed/Makefile:vmlinux-libs-$(CONFIG_EFI_STUB) += $(objtree)/drivers/firmware/efi/libstub/lib.a
>    arch/x86/boot/compressed/Makefile:vmlinux-libs-$(CONFIG_X86_64) += $(objtree)/arch/x86/boot/startup/lib.a
>    arch/x86/boot/compressed/Makefile:$(obj)/vmlinux: $(vmlinux-objs-y) $(vmlinux-libs-y) FORCE
> 
> IMO, the proper fix is to change the loongarch build to do the same.
> vmlinux.o is intended to be proper kernel code.

Thank you very much, that is to say, these EFISTUB functions can be
ignored by objtool, I will do it.

Thanks,
Tiezhu


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [RFC PATCH 2/2] objtool/LoongArch: Fix unreachable instruction warnings about head.S
  2025-08-26 23:43       ` Josh Poimboeuf
@ 2025-08-28  2:01         ` Tiezhu Yang
  0 siblings, 0 replies; 14+ messages in thread
From: Tiezhu Yang @ 2025-08-28  2:01 UTC (permalink / raw)
  To: Josh Poimboeuf
  Cc: Huacai Chen, Peter Zijlstra, Nathan Chancellor, loongarch,
	linux-kernel

On 2025/8/27 上午7:43, Josh Poimboeuf wrote:
> On Tue, Aug 26, 2025 at 08:30:23PM +0800, Tiezhu Yang wrote:
>> On 2025/8/26 下午4:26, Huacai Chen wrote:
>>> On Tue, Aug 26, 2025 at 2:46 PM Tiezhu Yang <yangtiezhu@loongson.cn> wrote:
>>>>
>>>> When compiling with LLVM and CONFIG_LTO_CLANG is set, there exist the
>>>> following objtool warnings after silencing all of the other warnings:
>>
>> ...
>>
>>>>    arch/loongarch/kernel/head.S | 8 ++++----
>>>>    1 file changed, 4 insertions(+), 4 deletions(-)
>>>>
>>>> diff --git a/arch/loongarch/kernel/head.S b/arch/loongarch/kernel/head.S
>>>> index e3865e92a917..566a1dbf5fa0 100644
>>>> --- a/arch/loongarch/kernel/head.S
>>>> +++ b/arch/loongarch/kernel/head.S
>>>> @@ -20,6 +20,7 @@
>>>>           __HEAD
>>>>
>>>>    _head:
>>>> +       UNWIND_HINT_UNDEFINED
>>>>           .word   IMAGE_DOS_SIGNATURE     /* "MZ", MS-DOS header */
>>>>           .org    0x8
>>>>           .dword  _kernel_entry           /* Kernel entry point (physical address) */
>>>> @@ -30,6 +31,7 @@ _head:
>>>>           .long   pe_header - _head       /* Offset to the PE header */
>>>>
>>>>    pe_header:
>>>> +       UNWIND_HINT_UNDEFINED
>>>>           __EFI_PE_HEADER
>>> The efi header is completely not code, the annotations are very strange.
>>
>> Yes, I think so too, but the aim is only to not checking for objtool,
>> it seems no other better way.
> 
> Objtool is only getting confused because there's data in a text section.
> Why not put that in a data section?

Thank you very much, that is to say, these EFISTUB instructions can be
ignored by objtool, I will do it.

Thanks,
Tiezhu


^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2025-08-28  2:01 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-26  6:46 [RFC PATCH 0/2] Fix objtool warnings if LTO is enabled for LoongArch (Part 2) Tiezhu Yang
2025-08-26  6:46 ` [RFC PATCH 1/2] objtool/LoongArch: Fix fall through warning about efi_boot_kernel() Tiezhu Yang
2025-08-26  8:32   ` Huacai Chen
2025-08-26 12:33     ` Tiezhu Yang
2025-08-26 13:03       ` Huacai Chen
2025-08-26 23:39         ` Josh Poimboeuf
2025-08-28  2:01           ` Tiezhu Yang
2025-08-26  6:46 ` [RFC PATCH 2/2] objtool/LoongArch: Fix unreachable instruction warnings about head.S Tiezhu Yang
2025-08-26  8:20   ` Peter Zijlstra
2025-08-26 12:27     ` Tiezhu Yang
2025-08-26  8:26   ` Huacai Chen
2025-08-26 12:30     ` Tiezhu Yang
2025-08-26 23:43       ` Josh Poimboeuf
2025-08-28  2:01         ` Tiezhu Yang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).