diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-02-14 14:10:49 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-02-14 14:10:49 -0500 |
| commit | c1b8ae03c38281e442c2ad3725e921b09f23290a (patch) | |
| tree | d12de54b9cb40f17905644a635c8cfec070707b7 | |
| parent | 161aa772f972ec75b292f25d65816a6f1cd285cf (diff) | |
| parent | 2a2f3e269c75edf916de5967079069aeb6a601cb (diff) | |
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
Pull KVM fixes from Paolo Bonzini:
"A small error handling problem and a compile breakage for ARM64"
* tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
arm64: KVM: Add VGIC device control for arm64
KVM: return an error code in kvm_vm_ioctl_register_coalesced_mmio()
| -rw-r--r-- | arch/arm64/include/uapi/asm/kvm.h | 9 | ||||
| -rw-r--r-- | virt/kvm/arm/vgic.c | 1 | ||||
| -rw-r--r-- | virt/kvm/coalesced_mmio.c | 8 |
3 files changed, 12 insertions, 6 deletions
diff --git a/arch/arm64/include/uapi/asm/kvm.h b/arch/arm64/include/uapi/asm/kvm.h index 495ab6f84a61..eaf54a30bedc 100644 --- a/arch/arm64/include/uapi/asm/kvm.h +++ b/arch/arm64/include/uapi/asm/kvm.h | |||
| @@ -148,6 +148,15 @@ struct kvm_arch_memory_slot { | |||
| 148 | #define KVM_REG_ARM_TIMER_CNT ARM64_SYS_REG(3, 3, 14, 3, 2) | 148 | #define KVM_REG_ARM_TIMER_CNT ARM64_SYS_REG(3, 3, 14, 3, 2) |
| 149 | #define KVM_REG_ARM_TIMER_CVAL ARM64_SYS_REG(3, 3, 14, 0, 2) | 149 | #define KVM_REG_ARM_TIMER_CVAL ARM64_SYS_REG(3, 3, 14, 0, 2) |
| 150 | 150 | ||
| 151 | /* Device Control API: ARM VGIC */ | ||
| 152 | #define KVM_DEV_ARM_VGIC_GRP_ADDR 0 | ||
| 153 | #define KVM_DEV_ARM_VGIC_GRP_DIST_REGS 1 | ||
| 154 | #define KVM_DEV_ARM_VGIC_GRP_CPU_REGS 2 | ||
| 155 | #define KVM_DEV_ARM_VGIC_CPUID_SHIFT 32 | ||
| 156 | #define KVM_DEV_ARM_VGIC_CPUID_MASK (0xffULL << KVM_DEV_ARM_VGIC_CPUID_SHIFT) | ||
| 157 | #define KVM_DEV_ARM_VGIC_OFFSET_SHIFT 0 | ||
| 158 | #define KVM_DEV_ARM_VGIC_OFFSET_MASK (0xffffffffULL << KVM_DEV_ARM_VGIC_OFFSET_SHIFT) | ||
| 159 | |||
| 151 | /* KVM_IRQ_LINE irq field index values */ | 160 | /* KVM_IRQ_LINE irq field index values */ |
| 152 | #define KVM_ARM_IRQ_TYPE_SHIFT 24 | 161 | #define KVM_ARM_IRQ_TYPE_SHIFT 24 |
| 153 | #define KVM_ARM_IRQ_TYPE_MASK 0xff | 162 | #define KVM_ARM_IRQ_TYPE_MASK 0xff |
diff --git a/virt/kvm/arm/vgic.c b/virt/kvm/arm/vgic.c index be456ce264d0..8ca405cd7c1a 100644 --- a/virt/kvm/arm/vgic.c +++ b/virt/kvm/arm/vgic.c | |||
| @@ -24,6 +24,7 @@ | |||
| 24 | #include <linux/of.h> | 24 | #include <linux/of.h> |
| 25 | #include <linux/of_address.h> | 25 | #include <linux/of_address.h> |
| 26 | #include <linux/of_irq.h> | 26 | #include <linux/of_irq.h> |
| 27 | #include <linux/uaccess.h> | ||
| 27 | 28 | ||
| 28 | #include <linux/irqchip/arm-gic.h> | 29 | #include <linux/irqchip/arm-gic.h> |
| 29 | 30 | ||
diff --git a/virt/kvm/coalesced_mmio.c b/virt/kvm/coalesced_mmio.c index 88b2fe3ddf42..00d86427af0f 100644 --- a/virt/kvm/coalesced_mmio.c +++ b/virt/kvm/coalesced_mmio.c | |||
| @@ -154,17 +154,13 @@ int kvm_vm_ioctl_register_coalesced_mmio(struct kvm *kvm, | |||
| 154 | list_add_tail(&dev->list, &kvm->coalesced_zones); | 154 | list_add_tail(&dev->list, &kvm->coalesced_zones); |
| 155 | mutex_unlock(&kvm->slots_lock); | 155 | mutex_unlock(&kvm->slots_lock); |
| 156 | 156 | ||
| 157 | return ret; | 157 | return 0; |
| 158 | 158 | ||
| 159 | out_free_dev: | 159 | out_free_dev: |
| 160 | mutex_unlock(&kvm->slots_lock); | 160 | mutex_unlock(&kvm->slots_lock); |
| 161 | |||
| 162 | kfree(dev); | 161 | kfree(dev); |
| 163 | 162 | ||
| 164 | if (dev == NULL) | 163 | return ret; |
| 165 | return -ENXIO; | ||
| 166 | |||
| 167 | return 0; | ||
| 168 | } | 164 | } |
| 169 | 165 | ||
| 170 | int kvm_vm_ioctl_unregister_coalesced_mmio(struct kvm *kvm, | 166 | int kvm_vm_ioctl_unregister_coalesced_mmio(struct kvm *kvm, |
