| From 09566f38ebe6ba634beb7a03d97f3f0755cb874b Mon Sep 17 00:00:00 2001 |
| From: Janosch Frank <frankja@linux.vnet.ibm.com> |
| Date: Thu, 2 Feb 2017 16:39:31 +0100 |
| Subject: [PATCH] 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.") |
| Cc: <stable@vger.kernel.org> # 3.16+ |
| |
| 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: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c |
| index 31fc6408b374..080d210f2788 100644 |
| --- a/arch/s390/kvm/kvm-s390.c |
| +++ b/arch/s390/kvm/kvm-s390.c |
| @@ -432,6 +432,9 @@ int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm, |
| struct kvm_memory_slot *memslot; |
| int is_dirty = 0; |
| |
| + if (kvm_is_ucontrol(kvm)) |
| + return -EINVAL; |
| + |
| mutex_lock(&kvm->slots_lock); |
| |
| r = -EINVAL; |
| -- |
| 2.12.0 |
| |