Re: [PATCH v2 04/16] powerpc: Curb objtool unannotated intra-function warnings

From: Christophe Leroy
Date: Tue Aug 30 2022 - 02:26:53 EST




Le 29/08/2022 à 07:52, Sathvika Vasireddy a écrit :
> objtool throws the following unannotated intra-function call
> warnings:
>
> arch/powerpc/kernel/entry_64.o: warning: objtool: .text+0x4: unannotated intra-function call
> arch/powerpc/kvm/book3s_hv_rmhandlers.o: warning: objtool: .text+0xe64: unannotated intra-function call
> arch/powerpc/kvm/book3s_hv_rmhandlers.o: warning: objtool: .text+0xee4: unannotated intra-function call
>
> Fix these warnings by annotating intra-function
> call, using ANNOTATE_INTRA_FUNCTION_CALL macro,
> to indicate that the branch targets are valid.
>
> Signed-off-by: Sathvika Vasireddy <sv@xxxxxxxxxxxxx>

Reviewed-by: Christophe Leroy <christophe.leroy@xxxxxxxxxx>

> ---
> arch/powerpc/kernel/entry_64.S | 2 ++
> arch/powerpc/kvm/book3s_hv_rmhandlers.S | 3 +++
> 2 files changed, 5 insertions(+)
>
> diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S
> index 01ace4c56104..fb444bc64f3f 100644
> --- a/arch/powerpc/kernel/entry_64.S
> +++ b/arch/powerpc/kernel/entry_64.S
> @@ -14,6 +14,7 @@
> * code, and exception/interrupt return code for PowerPC.
> */
>
> +#include <linux/objtool.h>
> #include <linux/errno.h>
> #include <linux/err.h>
> #include <asm/cache.h>
> @@ -73,6 +74,7 @@ flush_branch_caches:
>
> // Flush the link stack
> .rept 64
> + ANNOTATE_INTRA_FUNCTION_CALL
> bl .+4
> .endr
> b 1f
> diff --git a/arch/powerpc/kvm/book3s_hv_rmhandlers.S b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
> index de91118df0c5..ea39a0cf591a 100644
> --- a/arch/powerpc/kvm/book3s_hv_rmhandlers.S
> +++ b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
> @@ -30,6 +30,7 @@
> #include <asm/feature-fixups.h>
> #include <asm/cpuidle.h>
> #include <linux/linkage.h>
> +#include <linux/objtool.h>
>
> /* Values in HSTATE_NAPPING(r13) */
> #define NAPPING_CEDE 1
> @@ -1523,12 +1524,14 @@ kvm_flush_link_stack:
>
> /* Flush the link stack. On Power8 it's up to 32 entries in size. */
> .rept 32
> + ANNOTATE_INTRA_FUNCTION_CALL
> bl .+4
> .endr
>
> /* And on Power9 it's up to 64. */
> BEGIN_FTR_SECTION
> .rept 32
> + ANNOTATE_INTRA_FUNCTION_CALL
> bl .+4
> .endr
> END_FTR_SECTION_IFSET(CPU_FTR_ARCH_300)