[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1258d32d-ee54-4a5d-bc92-6c1f8179235a@amd.com>
Date: Wed, 25 Sep 2024 17:12:51 -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 01/28] x86/pvh: Call C code via the kernel virtual
mapping
On 2024-09-25 11:01, Ard Biesheuvel wrote:
> From: Ard Biesheuvel <ardb@...nel.org>
>
> Calling C code via a different mapping than it was linked at is
> problematic, because the compiler assumes that RIP-relative and absolute
> symbol references are interchangeable. GCC in particular may use
> RIP-relative per-CPU variable references even when not using -fpic.
>
> So call xen_prepare_pvh() via its kernel virtual mapping on x86_64, so
> that those RIP-relative references produce the correct values. This
> matches the pre-existing behavior for i386, which also invokes
> xen_prepare_pvh() via the kernel virtual mapping before invoking
> startup_32 with paging disabled again.
>
> Fixes: 7243b93345f7 ("xen/pvh: Bootstrap PVH guest")
> Signed-off-by: Ard Biesheuvel <ardb@...nel.org>
Tested-by: Jason Andryuk <jason.andryuk@....com>
Reviewed-by: Jason Andryuk <jason.andryuk@....com>
I found that before this change xen_prepare_pvh() would call through
some pv_ops function pointers into the kernel virtual mapping.
Regards,
Jason
Powered by blists - more mailing lists