From: Joerg Roedel <joro@8bytes.org>
To: x86@kernel.org
Cc: Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
hpa@zytor.com, Dave Hansen <dave.hansen@linux.intel.com>,
Andy Lutomirski <luto@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Joerg Roedel <jroedel@suse.de>, Mike Rapoport <rppt@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Brijesh Singh <brijesh.singh@amd.com>,
linux-kernel@vger.kernel.org
Subject: [PATCH v3 0/4] x86/mm: Fix some issues with using trampoline_pgd
Date: Fri, 1 Oct 2021 17:48:13 +0200 [thread overview]
Message-ID: <20211001154817.29225-1-joro@8bytes.org> (raw)
From: Joerg Roedel <jroedel@suse.de>
Hi,
here are a couple of fixes and documentation improvements for the use
of the trampoline_pgd in the kernel. Most importantly it fixes the
issue that switching to the trampoline_pgd will unmap the kernel stack
and real_mode_header, making crashes likely before the code can
actually jump to real mode.
The first patch adds a comment to document that the trampoline_pgd
aliases kernel page-tables in the user address range, establishing
global TLB entries for these addresses. The next two patches add
global TLB flushes when switching to and from the trampoline_pgd.
The last patch extends the trampoline_pgd to cover the whole kernel
address range. This is needed to make sure the stack and the
real_mode_header are still mapped after the switch and that the code
flow can safely reach real-mode.
Please review.
Thanks,
Joerg
Changes v2->v3:
- Addressed review comments from Dave Hansen
Link to v2: https://lore.kernel.org/lkml/20210929145501.4612-1-joro@8bytes.org/
Joerg Roedel (4):
x86/realmode: Add comment for Global bit usage in trampline_pgd
x86/mm/64: Flush global TLB on boot and AP bringup
x86/mm: Flush global TLB when switching to trampoline page-table
x86/64/mm: Map all kernel memory into trampoline_pgd
arch/x86/include/asm/realmode.h | 1 +
arch/x86/kernel/head64.c | 15 ++++++++++++++
arch/x86/kernel/head_64.S | 19 +++++++++++++++++-
arch/x86/kernel/reboot.c | 12 ++---------
arch/x86/mm/init.c | 5 +++++
arch/x86/realmode/init.c | 35 ++++++++++++++++++++++++++++++++-
6 files changed, 75 insertions(+), 12 deletions(-)
base-commit: 5816b3e6577eaa676ceb00a848f0fd65fe2adc29
--
2.33.0
next reply other threads:[~2021-10-01 15:48 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-01 15:48 Joerg Roedel [this message]
2021-10-01 15:48 ` [PATCH v3 1/4] x86/realmode: Add comment for Global bit usage in trampline_pgd Joerg Roedel
2021-10-01 15:48 ` [PATCH v3 2/4] x86/mm/64: Flush global TLB on boot and AP bringup Joerg Roedel
2021-10-26 9:55 ` Borislav Petkov
2021-10-26 12:58 ` Borislav Petkov
2021-12-02 12:50 ` Joerg Roedel
2021-12-02 18:19 ` Borislav Petkov
2021-12-02 21:17 ` Joerg Roedel
2021-10-01 15:48 ` [PATCH v3 3/4] x86/mm: Flush global TLB when switching to trampoline page-table Joerg Roedel
2021-10-01 16:13 ` Dave Hansen
2021-10-01 17:57 ` Jörg Rödel
2021-10-27 9:58 ` Borislav Petkov
2021-12-02 12:58 ` Joerg Roedel
2021-12-02 18:26 ` Borislav Petkov
2021-10-01 15:48 ` [PATCH v3 4/4] x86/64/mm: Map all kernel memory into trampoline_pgd Joerg Roedel
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=20211001154817.29225-1-joro@8bytes.org \
--to=joro@8bytes.org \
--cc=akpm@linux-foundation.org \
--cc=bp@alien8.de \
--cc=brijesh.singh@amd.com \
--cc=dave.hansen@linux.intel.com \
--cc=hpa@zytor.com \
--cc=jroedel@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@kernel.org \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=rppt@kernel.org \
--cc=tglx@linutronix.de \
--cc=x86@kernel.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.