]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
KVM: arm/arm64: Use uaccess functions for GICv3 {sc}active
authorChristoffer Dall <cdall@linaro.org>
Sun, 4 Jun 2017 11:23:52 +0000 (13:23 +0200)
committerChristoffer Dall <cdall@linaro.org>
Sun, 4 Jun 2017 11:26:03 +0000 (13:26 +0200)
We recently rewrote the sactive and cactive handlers to take the kvm
lock for guest accesses to these registers.  However, when accessed from
userspace this lock is already held.  Unfortunately we forgot to change
the private accessors for GICv3, because these are redistributor
registers and not distributor registers.

Signed-off-by: Christoffer Dall <cdall@linaro.org>
virt/kvm/arm/vgic/vgic-mmio-v3.c

index 23c0d56436a7690651650840cb3b981a4613c9cc..e25567a93dd52147c6375631fc7264c328980957 100644 (file)
@@ -528,12 +528,14 @@ static const struct vgic_register_region vgic_v3_sgibase_registers[] = {
                vgic_mmio_read_pending, vgic_mmio_write_cpending,
                vgic_mmio_read_raz, vgic_mmio_write_wi, 4,
                VGIC_ACCESS_32bit),
-       REGISTER_DESC_WITH_LENGTH(GICR_ISACTIVER0,
-               vgic_mmio_read_active, vgic_mmio_write_sactive, 4,
-               VGIC_ACCESS_32bit),
-       REGISTER_DESC_WITH_LENGTH(GICR_ICACTIVER0,
-               vgic_mmio_read_active, vgic_mmio_write_cactive, 4,
-               VGIC_ACCESS_32bit),
+       REGISTER_DESC_WITH_LENGTH_UACCESS(GICR_ISACTIVER0,
+               vgic_mmio_read_active, vgic_mmio_write_sactive,
+               NULL, vgic_mmio_uaccess_write_sactive,
+               4, VGIC_ACCESS_32bit),
+       REGISTER_DESC_WITH_LENGTH_UACCESS(GICR_ICACTIVER0,
+               vgic_mmio_read_active, vgic_mmio_write_cactive,
+               NULL, vgic_mmio_uaccess_write_cactive,
+               4, VGIC_ACCESS_32bit),
        REGISTER_DESC_WITH_LENGTH(GICR_IPRIORITYR0,
                vgic_mmio_read_priority, vgic_mmio_write_priority, 32,
                VGIC_ACCESS_32bit | VGIC_ACCESS_8bit),