[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <81fb3f6b-4ded-41d1-be66-d86af4f22171@amd.com>
Date: Wed, 25 Sep 2024 17:10:56 -0400
From: Jason Andryuk <jason.andryuk@....com>
To: Ard Biesheuvel <ardb+git@...gle.com>, <linux-kernel@...r.kernel.org>
CC: Ard Biesheuvel <ardb@...nel.org>, <x86@...nel.org>, "H. Peter Anvin"
<hpa@...or.com>, Andy Lutomirski <luto@...nel.org>, Peter Zijlstra
<peterz@...radead.org>, Uros Bizjak <ubizjak@...il.com>, Dennis Zhou
<dennis@...nel.org>, Tejun Heo <tj@...nel.org>, Christoph Lameter
<cl@...ux.com>, Mathieu Desnoyers <mathieu.desnoyers@...icios.com>, "Paolo
Bonzini" <pbonzini@...hat.com>, Vitaly Kuznetsov <vkuznets@...hat.com>,
Juergen Gross <jgross@...e.com>, Boris Ostrovsky
<boris.ostrovsky@...cle.com>, Greg Kroah-Hartman
<gregkh@...uxfoundation.org>, Arnd Bergmann <arnd@...db.de>, Masahiro Yamada
<masahiroy@...nel.org>, Kees Cook <kees@...nel.org>, Nathan Chancellor
<nathan@...nel.org>, Keith Packard <keithp@...thp.com>, Justin Stitt
<justinstitt@...gle.com>, Josh Poimboeuf <jpoimboe@...nel.org>, "Arnaldo
Carvalho de Melo" <acme@...nel.org>, Namhyung Kim <namhyung@...nel.org>,
"Jiri Olsa" <jolsa@...nel.org>, Ian Rogers <irogers@...gle.com>, Adrian
Hunter <adrian.hunter@...el.com>, Kan Liang <kan.liang@...ux.intel.com>,
<linux-doc@...r.kernel.org>, <linux-pm@...r.kernel.org>,
<kvm@...r.kernel.org>, <xen-devel@...ts.xenproject.org>,
<linux-efi@...r.kernel.org>, <linux-arch@...r.kernel.org>,
<linux-sparse@...r.kernel.org>, <linux-kbuild@...r.kernel.org>,
<linux-perf-users@...r.kernel.org>, <rust-for-linux@...r.kernel.org>,
<llvm@...ts.linux.dev>
Subject: Re: [RFC PATCH 11/28] x86/pvh: Avoid absolute symbol references in
.head.text
Hi Ard,
On 2024-09-25 11:01, Ard Biesheuvel wrote:
> From: Ard Biesheuvel <ardb@...nel.org>
>
> The .head.text section contains code that may execute from a different
> address than it was linked at. This is fragile, given that the x86 ABI
> can refer to global symbols via absolute or relative references, and the
> toolchain assumes that these are interchangeable, which they are not in
> this particular case.
>
> In the case of the PVH code, there are some additional complications:
> - the absolute references are in 32-bit code, which get emitted with
> R_X86_64_32 relocations, and these are not permitted in PIE code;
> - the code in question is not actually relocatable: it can only run
> correctly from the physical load address specified in the ELF note.
>
> So rewrite the code to only rely on relative symbol references: these
> are always 32-bits wide, even in 64-bit code, and are resolved by the
> linker at build time.
>
> Signed-off-by: Ard Biesheuvel <ardb@...nel.org>
Juergen queued up my patches to make the PVH entry point position
independent (5 commits):
https://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git/log/?h=linux-next
My commit that corresponds to this patch of yours is:
https://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git/commit/?h=linux-next&id=1db29f99edb056d8445876292f53a63459142309
(There are more changes to handle adjusting the page tables.)
Regards,
Jason
Powered by blists - more mailing lists