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:32 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.