From: Ard Biesheuvel <ardb+git@google.com>
To: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org, Ard Biesheuvel <ardb@kernel.org>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will@kernel.org>, Marc Zyngier <maz@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Ryan Roberts <ryan.roberts@arm.com>,
Anshuman Khandual <anshuman.khandual@arm.com>,
Kees Cook <keescook@chromium.org>,
Quentin Perret <qperret@google.com>
Subject: [PATCH v2 0/6] arm64: Clean up and simplify PA space size handling
Date: Thu, 5 Dec 2024 16:02:30 +0100 [thread overview]
Message-ID: <20241205150229.3510177-8-ardb+git@google.com> (raw)
From: Ard Biesheuvel <ardb@kernel.org>
This series addresses a number of buglets related to how we handle the
size of the physical address space when building LPA2 capable kernels:
- reject 52-bit physical addressess in the mapping routines when LPA2 is
configured but not available at runtime
- ensure that TCR.IPS is not set to 52-bits if LPA2 is not supported
- ensure that TCR_EL2.PS and DS match the host, regardless of whether
LPA2 is available at stage 2
- don't rely on kvm_get_parange() and invalid physical addresses as
control flags in the pKVM page donation APIs
Finally, the configurable 48-bit physical address space limit is dropped
entirely, as it doesn't buy us a lot now that all the PARange and {I}PS
handling is done at runtime.
Changes since v1:
- rebase onto v6.13-rc1
- add Anshuman's ack to patch #1
- incorporate Anshuman's feedback on patches #1 and #2
- tweak owner_update logic in patch #4
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Ryan Roberts <ryan.roberts@arm.com>
Cc: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Quentin Perret <qperret@google.com>
Ard Biesheuvel (6):
arm64/mm: Reduce PA space to 48 bits when LPA2 is not enabled
arm64/mm: Override PARange for !LPA2 and use it consistently
arm64/kvm: Configure HYP TCR.PS/DS based on host stage1
arm64/kvm: Avoid invalid physical addresses to signal owner updates
arm64: Kconfig: force ARM64_PAN=y when enabling TTBR0 sw PAN
arm64/mm: Drop configurable 48-bit physical address space limit
arch/arm64/Kconfig | 37 ++------------------
arch/arm64/include/asm/assembler.h | 14 +++-----
arch/arm64/include/asm/cpufeature.h | 3 +-
arch/arm64/include/asm/kvm_pgtable.h | 3 +-
arch/arm64/include/asm/pgtable-hwdef.h | 12 +------
arch/arm64/include/asm/pgtable-prot.h | 7 ++++
arch/arm64/include/asm/pgtable.h | 11 +-----
arch/arm64/include/asm/sparsemem.h | 4 ++-
arch/arm64/include/asm/sysreg.h | 6 ----
arch/arm64/kernel/cpufeature.c | 2 +-
arch/arm64/kernel/pi/idreg-override.c | 9 +++++
arch/arm64/kernel/pi/map_kernel.c | 6 ++++
arch/arm64/kvm/arm.c | 8 ++---
arch/arm64/kvm/hyp/pgtable.c | 33 ++++++-----------
arch/arm64/mm/init.c | 7 +++-
arch/arm64/mm/pgd.c | 9 ++---
arch/arm64/mm/proc.S | 2 --
scripts/gdb/linux/constants.py.in | 1 -
tools/arch/arm64/include/asm/sysreg.h | 6 ----
19 files changed, 63 insertions(+), 117 deletions(-)
--
2.47.0.338.g60cca15819-goog
next reply other threads:[~2024-12-05 15:04 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-05 15:02 Ard Biesheuvel [this message]
2024-12-05 15:02 ` [PATCH v2 1/6] arm64/mm: Reduce PA space to 48 bits when LPA2 is not enabled Ard Biesheuvel
2024-12-09 13:18 ` Ard Biesheuvel
2024-12-05 15:02 ` [PATCH v2 2/6] arm64/mm: Override PARange for !LPA2 and use it consistently Ard Biesheuvel
2024-12-05 15:02 ` [PATCH v2 3/6] arm64/kvm: Configure HYP TCR.PS/DS based on host stage1 Ard Biesheuvel
2024-12-05 15:02 ` [PATCH v2 4/6] arm64/kvm: Avoid invalid physical addresses to signal owner updates Ard Biesheuvel
2024-12-11 22:14 ` Will Deacon
2024-12-05 15:02 ` [PATCH v2 5/6] arm64: Kconfig: force ARM64_PAN=y when enabling TTBR0 sw PAN Ard Biesheuvel
2024-12-05 15:02 ` [PATCH v2 6/6] arm64/mm: Drop configurable 48-bit physical address space limit Ard Biesheuvel
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=20241205150229.3510177-8-ardb+git@google.com \
--to=ardb+git@google.com \
--cc=anshuman.khandual@arm.com \
--cc=ardb@kernel.org \
--cc=catalin.marinas@arm.com \
--cc=keescook@chromium.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=maz@kernel.org \
--cc=qperret@google.com \
--cc=ryan.roberts@arm.com \
--cc=will@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.