summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Zyngier <marc.zyngier@arm.com>2016-07-17 21:35:07 +0100
committerMarc Zyngier <marc.zyngier@arm.com>2016-07-18 18:15:18 +0100
commitbb7176449f6da27534a0faf3a67997bf2c3172aa (patch)
tree87b81477ee655dafff97e8622cf5e9c06a75e7e2
parent17a21f58ff3e60fef3df788561b65e576a0b494d (diff)
downloadlinux-bb7176449f6da27534a0faf3a67997bf2c3172aa.tar.gz
linux-bb7176449f6da27534a0faf3a67997bf2c3172aa.tar.bz2
linux-bb7176449f6da27534a0faf3a67997bf2c3172aa.zip
KVM: arm64: vgic-its: Add pointer to corresponding kvm_device
Going from the ITS structure to the corresponding KVM structure would be quite handy at times. The kvm_device pointer that is passed at create time is quite convenient for this, so let's keep a copy of it in the vgic_its structure. This will be put to a good use in subsequent patches. Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
-rw-r--r--include/kvm/arm_vgic.h1
-rw-r--r--virt/kvm/arm/vgic/vgic-its.c1
2 files changed, 2 insertions, 0 deletions
diff --git a/include/kvm/arm_vgic.h b/include/kvm/arm_vgic.h
index 4e63a07b9001..540da5149ba7 100644
--- a/include/kvm/arm_vgic.h
+++ b/include/kvm/arm_vgic.h
@@ -138,6 +138,7 @@ struct vgic_its {
bool enabled;
bool initialized;
struct vgic_io_device iodev;
+ struct kvm_device *dev;
/* These registers correspond to GITS_BASER{0,1} */
u64 baser_device_table;
diff --git a/virt/kvm/arm/vgic/vgic-its.c b/virt/kvm/arm/vgic/vgic-its.c
index d6f68e9c946d..dcae567c522d 100644
--- a/virt/kvm/arm/vgic/vgic-its.c
+++ b/virt/kvm/arm/vgic/vgic-its.c
@@ -1368,6 +1368,7 @@ static int vgic_its_create(struct kvm_device *dev, u32 type)
dev->kvm->arch.vgic.has_its = true;
its->initialized = false;
its->enabled = false;
+ its->dev = dev;
its->baser_device_table = INITIAL_BASER_VALUE |
((u64)GITS_BASER_TYPE_DEVICE << GITS_BASER_TYPE_SHIFT);