Skip to content

Commit 936a4ec

Browse files
ryanhrobMarc Zyngier
authored andcommitted
arm64/mm: Add lpa2_is_enabled() kvm_lpa2_is_enabled() stubs
Add stub functions which is initially always return false. These provide the hooks that we need to update the range-based TLBI routines, whose operands are encoded differently depending on whether lpa2 is enabled or not. The kernel and kvm will enable the use of lpa2 asynchronously in future, and part of that enablement will involve fleshing out their respective hook to advertise when it is using lpa2. Since the kernel's decision to use lpa2 relies on more than just whether the HW supports the feature, it can't just use the same static key as kvm. This is another reason to use separate functions. lpa2_is_enabled() is already implemented as part of Ard's kernel lpa2 series. Since kvm will make its decision solely based on HW support, kvm_lpa2_is_enabled() will be defined as system_supports_lpa2() once kvm starts using lpa2. Reviewed-by: Oliver Upton <oliver.upton@linux.dev> Signed-off-by: Ryan Roberts <ryan.roberts@arm.com> Signed-off-by: Marc Zyngier <maz@kernel.org> Link: https://lore.kernel.org/r/20231127111737.1897081-3-ryan.roberts@arm.com
1 parent e2768b7 commit 936a4ec

2 files changed

Lines changed: 4 additions & 0 deletions

File tree

arch/arm64/include/asm/kvm_pgtable.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525
#define KVM_PGTABLE_MIN_BLOCK_LEVEL 2U
2626
#endif
2727

28+
#define kvm_lpa2_is_enabled() false
29+
2830
static inline u64 kvm_get_parange(u64 mmfr0)
2931
{
3032
u64 parange = cpuid_feature_extract_unsigned_field(mmfr0,

arch/arm64/include/asm/pgtable-prot.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@ extern bool arm64_use_ng_mappings;
7171
#define PTE_MAYBE_NG (arm64_use_ng_mappings ? PTE_NG : 0)
7272
#define PMD_MAYBE_NG (arm64_use_ng_mappings ? PMD_SECT_NG : 0)
7373

74+
#define lpa2_is_enabled() false
75+
7476
/*
7577
* If we have userspace only BTI we don't want to mark kernel pages
7678
* guarded even if the system does support BTI.

0 commit comments

Comments
 (0)