mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 18:41:58 +09:00
ANDROID: BACKPORT: KVM: arm64: Disallow dirty logging and RO memslots with pKVM
The current implementation of pKVM doesn't support dirty logging or read-only memslots. Although support for these features is desirable, this will require future work, so let's cleanly report the limitations to userspace by failing the ioctls until then. Signed-off-by: Quentin Perret <qperret@google.com> [willdeacon@: Refer to 'memslot' arg to kvm_arch_prepare_memory_region() instead of non-existent 'new'] Signed-off-by: Will Deacon <willdeacon@google.com> Bug: 233587962 Change-Id: Ifc434c234ac58b46a244fdd44114bc9a51f53e19
This commit is contained in:
committed by
Will Deacon
parent
8b92cda797
commit
c4cb035083
@@ -1734,11 +1734,17 @@ int kvm_arch_prepare_memory_region(struct kvm *kvm,
|
||||
hva_t reg_end = hva + mem->memory_size;
|
||||
int ret = 0;
|
||||
|
||||
/* In protected mode, cannot modify memslots once a VM has run. */
|
||||
if (is_protected_kvm_enabled() &&
|
||||
(change == KVM_MR_DELETE || change == KVM_MR_MOVE) &&
|
||||
kvm->arch.pkvm.handle) {
|
||||
return -EPERM;
|
||||
if (is_protected_kvm_enabled()) {
|
||||
/* In protected mode, cannot modify memslots once a VM has run. */
|
||||
if ((change == KVM_MR_DELETE || change == KVM_MR_MOVE) &&
|
||||
kvm->arch.pkvm.handle) {
|
||||
return -EPERM;
|
||||
}
|
||||
|
||||
if (memslot &&
|
||||
memslot->flags & (KVM_MEM_LOG_DIRTY_PAGES | KVM_MEM_READONLY)) {
|
||||
return -EPERM;
|
||||
}
|
||||
}
|
||||
|
||||
if (change != KVM_MR_CREATE && change != KVM_MR_MOVE &&
|
||||
|
||||
Reference in New Issue
Block a user