From: Andi Kleen <ak@linux.intel.com>
To: Kevin Loughlin <kevinloughlin@google.com>
Cc: 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>,
Andy Lutomirski <luto@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Nathan Chancellor <nathan@kernel.org>,
Nick Desaulniers <ndesaulniers@google.com>,
Bill Wendling <morbo@google.com>,
Justin Stitt <justinstitt@google.com>,
Rick Edgecombe <rick.p.edgecombe@intel.com>,
Kees Cook <keescook@chromium.org>,
"Masami Hiramatsu (Google)" <mhiramat@kernel.org>,
Ze Gao <zegao2021@gmail.com>,
Josh Poimboeuf <jpoimboe@kernel.org>,
Pengfei Xu <pengfei.xu@intel.com>,
Brijesh Singh <brijesh.singh@amd.com>,
Michael Roth <michael.roth@amd.com>,
Ashish Kalra <ashish.kalra@amd.com>,
"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
Tom Lendacky <thomas.lendacky@amd.com>,
Joerg Roedel <jroedel@suse.de>,
linux-kernel@vger.kernel.org, llvm@lists.linux.dev,
linux-coco@lists.linux.dev, Adam Dunlap <acdunlap@google.com>,
Peter Gonda <pgonda@google.com>, Jacob Xu <jacobhxu@google.com>,
Sidharth Telang <sidtelang@google.com>
Subject: Re: [RFC PATCH] x86/sev: x86/sev: enforce PC-relative addressing in clang
Date: Wed, 10 Jan 2024 09:49:44 -0800 [thread overview]
Message-ID: <ZZ7YuEexYSaZYmLK@tassilo> (raw)
In-Reply-To: <CAGdbjmJcQeLWroBkbRC-cFQ6OuMHONsGLzpUrrA5k3uc8Rzkmw@mail.gmail.com>
> On that note, I do have another version of this patch that abstracts
> snp_cpuid_get_table() into a macro along the lines of...
>
> #define GET_RIP_RELATIVE_PTR(var) \
> ({ \
> void *ptr; \
> asm ("lea "#var"(%%rip), %0" \
> : "=r" (ptr) \
> : "p" (&var)); \
> ptr; \
> })
>
> ...and uses this new macro to access all SEV/SME global variables (not
> just the cpuid_table). It's similar in nature to `fixup_pointer()`
> (currently defined in arch/x86/kernel/head64.c) but doesn't require us
> to pass around `physaddr` from `__startup64()`. This wouldn't
> introduce any new execution model changes between clang vs gcc and
> would be consistent with the kernel's current approach of relying on
> developers to manually apply fixups for global variable accesses prior
> to kernel relocation. I can send an RFC v2 for the
> GET_RIP_RELATIVE_PTR() version of this patch.
That looks like a far better solution indeed.
Ideally objtool would check for this, perhaps with a new ELF
section. But actually doing that might be far more work, so perhaps not
worth it.
Thanks,
-Andi
next prev parent reply other threads:[~2024-01-10 17:49 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-10 1:26 [RFC PATCH] x86/sev: x86/sev: enforce PC-relative addressing in clang Kevin Loughlin
2024-01-10 11:45 ` Andi Kleen
2024-01-10 17:14 ` Kevin Loughlin
2024-01-10 17:49 ` Andi Kleen [this message]
2024-01-11 22:36 ` [RFC PATCH v2] x86/sev: enforce RIP-relative accesses in early SEV/SME code Kevin Loughlin
2024-01-12 12:17 ` Kirill A. Shutemov
2024-01-12 18:29 ` Kevin Loughlin
2024-01-15 10:12 ` Kirill A. Shutemov
2024-01-16 22:13 ` Kevin Loughlin
2024-01-15 7:33 ` kernel test robot
2024-01-15 8:44 ` kernel test robot
2024-01-15 15:53 ` Tom Lendacky
2024-01-16 23:44 ` Kevin Loughlin
2024-01-15 20:46 ` Borislav Petkov
2024-01-17 0:07 ` Kevin Loughlin
2024-01-17 2:47 ` Hou Wenlong
2024-01-17 10:59 ` Ard Biesheuvel
2024-01-17 11:39 ` Andi Kleen
2024-01-17 11:55 ` Ard Biesheuvel
2024-01-17 13:05 ` Borislav Petkov
2024-01-17 13:38 ` Ard Biesheuvel
2024-01-21 14:12 ` Ard Biesheuvel
2024-01-21 15:37 ` Borislav Petkov
2024-01-21 16:49 ` Ard Biesheuvel
2024-01-21 18:20 ` Borislav Petkov
2024-01-30 22:08 ` [PATCH v3 0/2] x86: enforce and cleanup RIP-relative accesses in early boot code Kevin Loughlin
2024-01-31 14:00 ` Borislav Petkov
2024-01-31 18:16 ` Jacob Xu
2024-01-31 18:29 ` Borislav Petkov
2024-02-03 0:22 ` Kevin Loughlin
2024-02-03 10:15 ` Ard Biesheuvel
2024-02-03 10:19 ` Borislav Petkov
2024-02-03 10:27 ` Ard Biesheuvel
2024-02-03 11:25 ` Borislav Petkov
2024-02-06 15:46 ` [tip: x86/sev] x86/sev: Fix position dependent variable references in startup code tip-bot2 for Ard Biesheuvel
2024-01-30 22:08 ` [PATCH v3 1/2] x86/sev: enforce RIP-relative accesses in early SEV/SME code Kevin Loughlin
2024-01-31 8:20 ` Kirill A. Shutemov
2024-02-02 22:00 ` Kevin Loughlin
2024-02-02 22:47 ` Ard Biesheuvel
2024-02-03 0:11 ` Kevin Loughlin
2024-01-31 13:42 ` Ard Biesheuvel
2024-02-03 0:14 ` Kevin Loughlin
2024-01-30 22:08 ` [PATCH v3 2/2] x86/head64: Replace pointer fixups with RIP_RELATIVE_ADDR() Kevin Loughlin
2024-01-31 8:22 ` Kirill A. Shutemov
2024-02-01 16:38 ` Kevin Loughlin
2024-01-31 15:30 ` Tom Lendacky
2024-01-31 15:36 ` Kirill A. Shutemov
2024-01-10 13:36 ` [RFC PATCH] x86/sev: x86/sev: enforce PC-relative addressing in clang Kirill A. Shutemov
2024-01-10 17:28 ` Kevin Loughlin
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=ZZ7YuEexYSaZYmLK@tassilo \
--to=ak@linux.intel.com \
--cc=acdunlap@google.com \
--cc=ashish.kalra@amd.com \
--cc=bp@alien8.de \
--cc=brijesh.singh@amd.com \
--cc=dave.hansen@linux.intel.com \
--cc=hpa@zytor.com \
--cc=jacobhxu@google.com \
--cc=jpoimboe@kernel.org \
--cc=jroedel@suse.de \
--cc=justinstitt@google.com \
--cc=keescook@chromium.org \
--cc=kevinloughlin@google.com \
--cc=kirill.shutemov@linux.intel.com \
--cc=linux-coco@lists.linux.dev \
--cc=linux-kernel@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=luto@kernel.org \
--cc=mhiramat@kernel.org \
--cc=michael.roth@amd.com \
--cc=mingo@redhat.com \
--cc=morbo@google.com \
--cc=nathan@kernel.org \
--cc=ndesaulniers@google.com \
--cc=pengfei.xu@intel.com \
--cc=peterz@infradead.org \
--cc=pgonda@google.com \
--cc=rick.p.edgecombe@intel.com \
--cc=sidtelang@google.com \
--cc=tglx@linutronix.de \
--cc=thomas.lendacky@amd.com \
--cc=x86@kernel.org \
--cc=zegao2021@gmail.com \
/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.