diff options
Diffstat (limited to 'virt/kvm/coalesced_mmio.c')
-rw-r--r-- | virt/kvm/coalesced_mmio.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/virt/kvm/coalesced_mmio.c b/virt/kvm/coalesced_mmio.c index 36e258029649..53850177163f 100644 --- a/virt/kvm/coalesced_mmio.c +++ b/virt/kvm/coalesced_mmio.c | |||
@@ -120,8 +120,10 @@ int kvm_coalesced_mmio_init(struct kvm *kvm) | |||
120 | return ret; | 120 | return ret; |
121 | 121 | ||
122 | out_free_dev: | 122 | out_free_dev: |
123 | kvm->coalesced_mmio_dev = NULL; | ||
123 | kfree(dev); | 124 | kfree(dev); |
124 | out_free_page: | 125 | out_free_page: |
126 | kvm->coalesced_mmio_ring = NULL; | ||
125 | __free_page(page); | 127 | __free_page(page); |
126 | out_err: | 128 | out_err: |
127 | return ret; | 129 | return ret; |
@@ -139,7 +141,7 @@ int kvm_vm_ioctl_register_coalesced_mmio(struct kvm *kvm, | |||
139 | struct kvm_coalesced_mmio_dev *dev = kvm->coalesced_mmio_dev; | 141 | struct kvm_coalesced_mmio_dev *dev = kvm->coalesced_mmio_dev; |
140 | 142 | ||
141 | if (dev == NULL) | 143 | if (dev == NULL) |
142 | return -EINVAL; | 144 | return -ENXIO; |
143 | 145 | ||
144 | mutex_lock(&kvm->slots_lock); | 146 | mutex_lock(&kvm->slots_lock); |
145 | if (dev->nb_zones >= KVM_COALESCED_MMIO_ZONE_MAX) { | 147 | if (dev->nb_zones >= KVM_COALESCED_MMIO_ZONE_MAX) { |
@@ -162,7 +164,7 @@ int kvm_vm_ioctl_unregister_coalesced_mmio(struct kvm *kvm, | |||
162 | struct kvm_coalesced_mmio_zone *z; | 164 | struct kvm_coalesced_mmio_zone *z; |
163 | 165 | ||
164 | if (dev == NULL) | 166 | if (dev == NULL) |
165 | return -EINVAL; | 167 | return -ENXIO; |
166 | 168 | ||
167 | mutex_lock(&kvm->slots_lock); | 169 | mutex_lock(&kvm->slots_lock); |
168 | 170 | ||