aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390
diff options
context:
space:
mode:
authorJanosch Frank <frankja@linux.vnet.ibm.com>2017-02-02 10:39:31 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-03-14 22:02:40 -0400
commit035dcc8e87f63b36f3456b39a352f0a1c785b93b (patch)
tree91f8dc5ca4e95a16c9d1a7e41304947285d2c1ea /arch/s390
parentc4c590be494404531f54fa1acf580a08031f5bb9 (diff)
KVM: s390: Disable dirty log retrieval for UCONTROL guests
commit e1e8a9624f7ba8ead4f056ff558ed070e86fa747 upstream. User controlled KVM guests do not support the dirty log, as they have no single gmap that we can check for changes. As they have no single gmap, kvm->arch.gmap is NULL and all further referencing to it for dirty checking will result in a NULL dereference. Let's return -EINVAL if a caller tries to sync dirty logs for a UCONTROL guest. Fixes: 15f36eb ("KVM: s390: Add proper dirty bitmap support to S390 kvm.") Signed-off-by: Janosch Frank <frankja@linux.vnet.ibm.com> Reported-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'arch/s390')
-rw-r--r--arch/s390/kvm/kvm-s390.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index 47a1de77b18d..5ba494ed18c1 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -442,6 +442,9 @@ int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm,
442 struct kvm_memory_slot *memslot; 442 struct kvm_memory_slot *memslot;
443 int is_dirty = 0; 443 int is_dirty = 0;
444 444
445 if (kvm_is_ucontrol(kvm))
446 return -EINVAL;
447
445 mutex_lock(&kvm->slots_lock); 448 mutex_lock(&kvm->slots_lock);
446 449
447 r = -EINVAL; 450 r = -EINVAL;