From: Greg KH <gregkh@linuxfoundation.org>
To: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: Juergen Gross <jgross@suse.com>,
Stefano Stabellini <sstabellini@kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
Dave Hansen <dave.hansen@linux.intel.com>,
x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
Subject: Re: Build warnings in Xen 5.15.y and 5.10.y with retbleed backports
Date: Tue, 12 Jul 2022 21:31:47 +0200 [thread overview]
Message-ID: <Ys3MI7cv2yKj9RFc@kroah.com> (raw)
In-Reply-To: <ddcdd531-fc33-39df-a69f-5352d7a1c8af@oracle.com>
On Tue, Jul 12, 2022 at 03:19:39PM -0400, Boris Ostrovsky wrote:
>
> On 7/12/22 12:38 PM, Greg KH wrote:
> > Hi all,
> >
> > I'm seeing the following build warning:
> > arch/x86/kernel/head_64.o: warning: objtool: xen_hypercall_mmu_update(): can't find starting instruction
> > in the 5.15.y and 5.10.y retbleed backports.
> >
> > I don't know why just this one hypercall is being called out by objtool,
> > and this warning isn't in 5.18 and Linus's tree due to I think commit
> > 5b2fc51576ef ("x86/ibt,xen: Sprinkle the ENDBR") being there.
> >
> > But, is this a ret call that we "forgot" here? It's a "real" ret in
> > Linus's branch:
> >
> > .pushsection .noinstr.text, "ax"
> > .balign PAGE_SIZE
> > SYM_CODE_START(hypercall_page)
> > .rept (PAGE_SIZE / 32)
> > UNWIND_HINT_FUNC
> > ANNOTATE_NOENDBR
> > ANNOTATE_UNRET_SAFE
> > ret
> > /*
> > * Xen will write the hypercall page, and sort out ENDBR.
> > */
> > .skip 31, 0xcc
> > .endr
> >
> > while 5.15.y and older has:
> > .pushsection .text
> > .balign PAGE_SIZE
> > SYM_CODE_START(hypercall_page)
> > .rept (PAGE_SIZE / 32)
> > UNWIND_HINT_FUNC
> > .skip 31, 0x90
> > ANNOTATE_UNRET_SAFE
> > RET
> > .endr
> >
> > So should the "ret" remain or be turned into "RET" in mainline right
> > now?
>
>
> It doesn't matter --- this is overwritten by the hypervisor during initialization when Xen fills in actual hypercall code.
>
>
> So f4b4bc10b0b85ec66f1a9bf5dddf475e6695b6d2 added 'ret' to make objtool happy and then 14b476e07fab6 replaced 'ret' with RET as part of SLS fixes. The latter was not really necessary but harmless.
>
>
> So it can be 'ret', RET, or anything else that tools don't complain about. It will not be executed.
Cool, thanks.
But what about the objtool warning that I now see? Is that "real"?
I don't run any Xen systems, so I can't test any of this myself.
thanks,
greg k-h
next prev parent reply other threads:[~2022-07-12 19:45 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-12 16:38 Build warnings in Xen 5.15.y and 5.10.y with retbleed backports Greg KH
2022-07-12 19:19 ` Boris Ostrovsky
2022-07-12 19:31 ` Greg KH [this message]
2022-07-12 20:22 ` Boris Ostrovsky
2022-07-16 16:35 ` Nicolai Stange
2022-07-16 22:47 ` Boris Ostrovsky
2022-07-17 5:20 ` Juergen Gross
2022-07-18 13:36 ` Boris Ostrovsky
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Ys3MI7cv2yKj9RFc@kroah.com \
--to=gregkh@linuxfoundation.org \
--cc=boris.ostrovsky@oracle.com \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.com \
--cc=hpa@zytor.com \
--cc=jgross@suse.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=sstabellini@kernel.org \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox