lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Wed, 25 Jan 2023 12:57:35 +0530
From:   "Naveen N. Rao" <naveen.n.rao@...ux.vnet.ibm.com>
To:     kernel test robot <lkp@...el.com>,
        Sathvika Vasireddy <sv@...ux.ibm.com>
Cc:     Christophe Leroy <christophe.leroy@...roup.eu>,
        linux-kernel@...r.kernel.org,
        Michael Ellerman <mpe@...erman.id.au>,
        oe-kbuild-all@...ts.linux.dev, linuxppc-dev@...ts.ozlabs.org,
        npiggin@...il.com
Subject: Re: arch/powerpc/kernel/head_85xx.o: warning: objtool:
 .head.text+0x1a6c: unannotated intra-function call

Sathvika Vasireddy wrote:
> 
>>>> arch/powerpc/kvm/booke.o: warning: objtool: kvmppc_fill_pt_regs+0x30: unannotated intra-function call
> 
> As an attempt to fix it, I tried expanding ANNOTATE_INTRA_FUNCTION_CALL 
> macro to indicate that the branch target is valid. It then threw another 
> warning (arch/powerpc/kvm/booke.o: warning: objtool: 
> kvmppc_fill_pt_regs+0x38: intra_function_call not a direct call). The 
> below diff just removes the warnings for me, but I'm not very sure if 
> this is the best way to fix the objtool warnings seen with this 
> particular file. Please let me know if there are any better ways to fix it.
> 
> diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c
> index 0dce93ccaadf..b6a413824b98 100644
> --- a/arch/powerpc/kvm/booke.c
> +++ b/arch/powerpc/kvm/booke.c
> @@ -917,7 +917,9 @@ static void kvmppc_fill_pt_regs(struct pt_regs *regs)
>          asm("mr %0, 1" : "=r"(r1));
>          asm("mflr %0" : "=r"(lr));
>          asm("mfmsr %0" : "=r"(msr));
> +       asm(".pushsection .discard.intra_function_calls; .long 999f; 
> .popsection; 999:");
>          asm("bl 1f; 1: mflr %0" : "=r"(ip));

I don't think you can assume that there won't be anything in between two 
asm statements. Does it work if you combine both the above asm 
statements into a single one?

Even if that works, I don't think it is good to expand the macro here.  
That asm statement looks to be trying to grab the current nip. I don't 
know enough about that code, and someone who knows more about KVM may be 
able to help, but it looks like we should be able to simply set 'ip' to 
the address of kvmppc_fill_pt_regs()?


- Naveen

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ