#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  3
-#define KVM_PTE_LEAF_ATTR_LO_S1_AP_RW  1
+#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)