KVM: arm-vgic: Support KVM_CREATE_DEVICE for VGIC
authorChristoffer Dall <christoffer.dall@linaro.org>
Fri, 25 Oct 2013 16:29:18 +0000 (17:29 +0100)
committerChristoffer Dall <christoffer.dall@linaro.org>
Thu, 2 Oct 2014 15:18:24 +0000 (17:18 +0200)
commit1032acb686aaabafb124e12ae15a6adc9b3da557
treec79183933425080856a0e4d7f445050b270d7cb6
parentd90651fa17fcc2112dcfe05832a6c1169d26dee3
KVM: arm-vgic: Support KVM_CREATE_DEVICE for VGIC

Support creating the ARM VGIC device through the KVM_CREATE_DEVICE
ioctl, which can then later be leveraged to use the
KVM_{GET/SET}_DEVICE_ATTR, which is useful both for setting addresses in
a more generic API than the ARM-specific one and is useful for
save/restore of VGIC state.

Adds KVM_CAP_DEVICE_CTRL to ARM capabilities.

Note that we change the check for creating a VGIC from bailing out if
any VCPUs were created, to bailing out if any VCPUs were ever run.  This
is an important distinction that shouldn't break anything, but allows
creating the VGIC after the VCPUs have been created.

Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
(cherry picked from commit 7330672befe6269e575f79b924a7068b26c144b4)
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
Documentation/virtual/kvm/devices/arm-vgic.txt [new file with mode: 0644]
arch/arm/kvm/arm.c
include/linux/kvm_host.h
include/uapi/linux/kvm.h
virt/kvm/arm/vgic.c
virt/kvm/kvm_main.c