summary refs log tree commit diff
path: root/arch/arm64/kvm/hyp/pgtable.c
diff options
context:
space:
mode:
authorQuentin Perret <qperret@google.com>2020-09-11 14:25:20 +0100
committerMarc Zyngier <maz@kernel.org>2020-09-11 15:51:14 +0100
commit73d49df2c3e7cad5bf64c92ec03ce9e3823898b9 (patch)
tree556270df771e3dfde4fdfbb283b4c9461a5fd447 /arch/arm64/kvm/hyp/pgtable.c
parentee8efad7994ce204806260bc0261c7e103f704c1 (diff)
downloadlinux-73d49df2c3e7cad5bf64c92ec03ce9e3823898b9.tar.gz
KVM: arm64: Add support for stage-2 write-protect in generic page-table
Add a stage-2 wrprotect() operation to the generic page-table code.

Signed-off-by: Quentin Perret <qperret@google.com>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Reviewed-by: Gavin Shan <gshan@redhat.com>
Cc: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20200911132529.19844-13-will@kernel.org
Diffstat (limited to 'arch/arm64/kvm/hyp/pgtable.c')
-rw-r--r--arch/arm64/kvm/hyp/pgtable.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/arm64/kvm/hyp/pgtable.c b/arch/arm64/kvm/hyp/pgtable.c
index af60ea8ee29d..480b95030f54 100644
--- a/arch/arm64/kvm/hyp/pgtable.c
+++ b/arch/arm64/kvm/hyp/pgtable.c
@@ -746,6 +746,12 @@ static int stage2_update_leaf_attrs(struct kvm_pgtable *pgt, u64 addr,
 	return 0;
 }
 
+int kvm_pgtable_stage2_wrprotect(struct kvm_pgtable *pgt, u64 addr, u64 size)
+{
+	return stage2_update_leaf_attrs(pgt, addr, size, 0,
+					KVM_PTE_LEAF_ATTR_LO_S2_S2AP_W, NULL);
+}
+
 kvm_pte_t kvm_pgtable_stage2_mkyoung(struct kvm_pgtable *pgt, u64 addr)
 {
 	kvm_pte_t pte = 0;