lkml.org 
[lkml]   [2023]   [Oct]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    Subject[PATCH v2 04/11] KVM: arm64: Move pagetable definitions to common header
    From
    In preparation for using the stage-2 definitions in ptdump, move some of
    these macros in the common header.

    Signed-off-by: Sebastian Ene <sebastianene@google.com>
    ---
    arch/arm64/include/asm/kvm_pgtable.h | 42 ++++++++++++++++++++++++++++
    arch/arm64/kvm/hyp/pgtable.c | 42 ----------------------------
    2 files changed, 42 insertions(+), 42 deletions(-)

    diff --git a/arch/arm64/include/asm/kvm_pgtable.h b/arch/arm64/include/asm/kvm_pgtable.h
    index be615700f8ac..913f34d75b29 100644
    --- a/arch/arm64/include/asm/kvm_pgtable.h
    +++ b/arch/arm64/include/asm/kvm_pgtable.h
    @@ -45,6 +45,48 @@ typedef u64 kvm_pte_t;

    #define KVM_PHYS_INVALID (-1ULL)

    +#define KVM_PTE_LEAF_ATTR_LO GENMASK(11, 2)
    +
    +#define KVM_PTE_LEAF_ATTR_LO_S1_ATTRIDX GENMASK(4, 2)
    +#define KVM_PTE_LEAF_ATTR_LO_S1_AP GENMASK(7, 6)
    +#define KVM_PTE_LEAF_ATTR_LO_S1_AP_RO \
    + ({ cpus_have_final_cap(ARM64_KVM_HVHE) ? 2 : 3; })
    +#define KVM_PTE_LEAF_ATTR_LO_S1_AP_RW \
    + ({ cpus_have_final_cap(ARM64_KVM_HVHE) ? 0 : 1; })
    +#define KVM_PTE_LEAF_ATTR_LO_S1_SH GENMASK(9, 8)
    +#define KVM_PTE_LEAF_ATTR_LO_S1_SH_IS 3
    +#define KVM_PTE_LEAF_ATTR_LO_S1_AF BIT(10)
    +
    +#define KVM_PTE_LEAF_ATTR_LO_S2_MEMATTR GENMASK(5, 2)
    +#define KVM_PTE_LEAF_ATTR_LO_S2_S2AP_R BIT(6)
    +#define KVM_PTE_LEAF_ATTR_LO_S2_S2AP_W BIT(7)
    +#define KVM_PTE_LEAF_ATTR_LO_S2_SH GENMASK(9, 8)
    +#define KVM_PTE_LEAF_ATTR_LO_S2_SH_IS 3
    +#define KVM_PTE_LEAF_ATTR_LO_S2_AF BIT(10)
    +
    +#define KVM_PTE_LEAF_ATTR_HI GENMASK(63, 50)
    +
    +#define KVM_PTE_LEAF_ATTR_HI_SW GENMASK(58, 55)
    +
    +#define KVM_PTE_LEAF_ATTR_HI_S1_XN BIT(54)
    +
    +#define KVM_PTE_LEAF_ATTR_HI_S2_XN BIT(54)
    +
    +#define KVM_PTE_LEAF_ATTR_HI_S1_GP BIT(50)
    +
    +#define KVM_PTE_LEAF_ATTR_S2_PERMS (KVM_PTE_LEAF_ATTR_LO_S2_S2AP_R | \
    + KVM_PTE_LEAF_ATTR_LO_S2_S2AP_W | \
    + KVM_PTE_LEAF_ATTR_HI_S2_XN)
    +
    +#define KVM_INVALID_PTE_OWNER_MASK GENMASK(9, 2)
    +#define KVM_MAX_OWNER_ID 1
    +
    +/*
    + * Used to indicate a pte for which a 'break-before-make' sequence is in
    + * progress.
    + */
    +#define KVM_INVALID_PTE_LOCKED BIT(10)
    +
    static inline bool kvm_pte_valid(kvm_pte_t pte)
    {
    return pte & KVM_PTE_VALID;
    diff --git a/arch/arm64/kvm/hyp/pgtable.c b/arch/arm64/kvm/hyp/pgtable.c
    index 256654b89c1e..67fa122c6028 100644
    --- a/arch/arm64/kvm/hyp/pgtable.c
    +++ b/arch/arm64/kvm/hyp/pgtable.c
    @@ -17,48 +17,6 @@
    #define KVM_PTE_TYPE_PAGE 1
    #define KVM_PTE_TYPE_TABLE 1

    -#define KVM_PTE_LEAF_ATTR_LO GENMASK(11, 2)
    -
    -#define KVM_PTE_LEAF_ATTR_LO_S1_ATTRIDX GENMASK(4, 2)
    -#define KVM_PTE_LEAF_ATTR_LO_S1_AP GENMASK(7, 6)
    -#define KVM_PTE_LEAF_ATTR_LO_S1_AP_RO \
    - ({ cpus_have_final_cap(ARM64_KVM_HVHE) ? 2 : 3; })
    -#define KVM_PTE_LEAF_ATTR_LO_S1_AP_RW \
    - ({ cpus_have_final_cap(ARM64_KVM_HVHE) ? 0 : 1; })
    -#define KVM_PTE_LEAF_ATTR_LO_S1_SH GENMASK(9, 8)
    -#define KVM_PTE_LEAF_ATTR_LO_S1_SH_IS 3
    -#define KVM_PTE_LEAF_ATTR_LO_S1_AF BIT(10)
    -
    -#define KVM_PTE_LEAF_ATTR_LO_S2_MEMATTR GENMASK(5, 2)
    -#define KVM_PTE_LEAF_ATTR_LO_S2_S2AP_R BIT(6)
    -#define KVM_PTE_LEAF_ATTR_LO_S2_S2AP_W BIT(7)
    -#define KVM_PTE_LEAF_ATTR_LO_S2_SH GENMASK(9, 8)
    -#define KVM_PTE_LEAF_ATTR_LO_S2_SH_IS 3
    -#define KVM_PTE_LEAF_ATTR_LO_S2_AF BIT(10)
    -
    -#define KVM_PTE_LEAF_ATTR_HI GENMASK(63, 50)
    -
    -#define KVM_PTE_LEAF_ATTR_HI_SW GENMASK(58, 55)
    -
    -#define KVM_PTE_LEAF_ATTR_HI_S1_XN BIT(54)
    -
    -#define KVM_PTE_LEAF_ATTR_HI_S2_XN BIT(54)
    -
    -#define KVM_PTE_LEAF_ATTR_HI_S1_GP BIT(50)
    -
    -#define KVM_PTE_LEAF_ATTR_S2_PERMS (KVM_PTE_LEAF_ATTR_LO_S2_S2AP_R | \
    - KVM_PTE_LEAF_ATTR_LO_S2_S2AP_W | \
    - KVM_PTE_LEAF_ATTR_HI_S2_XN)
    -
    -#define KVM_INVALID_PTE_OWNER_MASK GENMASK(9, 2)
    -#define KVM_MAX_OWNER_ID 1
    -
    -/*
    - * Used to indicate a pte for which a 'break-before-make' sequence is in
    - * progress.
    - */
    -#define KVM_INVALID_PTE_LOCKED BIT(10)
    -
    struct kvm_pgtable_walk_data {
    struct kvm_pgtable_walker *walker;

    --
    2.42.0.655.g421f12c284-goog
    \
     
     \ /
      Last update: 2023-10-19 16:42    [W:6.647 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site