diff options
author | Eric Auger <eric.auger@redhat.com> | 2016-07-18 10:57:36 +0000 |
---|---|---|
committer | Marc Zyngier <marc.zyngier@arm.com> | 2016-07-18 18:15:15 +0100 |
commit | 9d5fcb9dd74b5e0070ef2f66f7f4ae14a23b0206 (patch) | |
tree | f212c76226e3226c0efb42abdbb5ed7cf1e7230d /virt/kvm/arm/vgic/vgic-mmio.c | |
parent | 0e4e82f154e387969ea7ecd2c8876689fb68f710 (diff) | |
download | linux-stable-9d5fcb9dd74b5e0070ef2f66f7f4ae14a23b0206.tar.gz linux-stable-9d5fcb9dd74b5e0070ef2f66f7f4ae14a23b0206.tar.bz2 linux-stable-9d5fcb9dd74b5e0070ef2f66f7f4ae14a23b0206.zip |
KVM: arm/arm64: Fix vGICv2 KVM_DEV_ARM_VGIC_GRP_CPU/DIST_REGS
For VGICv2 save and restore the CPU interface registers
are accessed. Restore the modality which has been altered.
Also explicitly set the iodev_type for both the DIST and CPU
interface.
Signed-off-by: Eric Auger <eric.auger@redhat.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Diffstat (limited to 'virt/kvm/arm/vgic/vgic-mmio.c')
-rw-r--r-- | virt/kvm/arm/vgic/vgic-mmio.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/virt/kvm/arm/vgic/vgic-mmio.c b/virt/kvm/arm/vgic/vgic-mmio.c index 26be827bbfcc..3bad3c5ed431 100644 --- a/virt/kvm/arm/vgic/vgic-mmio.c +++ b/virt/kvm/arm/vgic/vgic-mmio.c @@ -484,7 +484,8 @@ static int dispatch_mmio_read(struct kvm_vcpu *vcpu, struct kvm_io_device *dev, switch (iodev->iodev_type) { case IODEV_CPUIF: - return 1; + data = region->read(vcpu, addr, len); + break; case IODEV_DIST: data = region->read(vcpu, addr, len); break; @@ -517,6 +518,7 @@ static int dispatch_mmio_write(struct kvm_vcpu *vcpu, struct kvm_io_device *dev, switch (iodev->iodev_type) { case IODEV_CPUIF: + region->write(vcpu, addr, len, data); break; case IODEV_DIST: region->write(vcpu, addr, len, data); |