Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

KVM: arm/arm64: Use uaccess functions for GICv3 {sc}active

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>

+8 -6
+8 -6
virt/kvm/arm/vgic/vgic-mmio-v3.c
··· 528 528 vgic_mmio_read_pending, vgic_mmio_write_cpending, 529 529 vgic_mmio_read_raz, vgic_mmio_write_wi, 4, 530 530 VGIC_ACCESS_32bit), 531 - REGISTER_DESC_WITH_LENGTH(GICR_ISACTIVER0, 532 - vgic_mmio_read_active, vgic_mmio_write_sactive, 4, 533 - VGIC_ACCESS_32bit), 534 - REGISTER_DESC_WITH_LENGTH(GICR_ICACTIVER0, 535 - vgic_mmio_read_active, vgic_mmio_write_cactive, 4, 536 - VGIC_ACCESS_32bit), 531 + REGISTER_DESC_WITH_LENGTH_UACCESS(GICR_ISACTIVER0, 532 + vgic_mmio_read_active, vgic_mmio_write_sactive, 533 + NULL, vgic_mmio_uaccess_write_sactive, 534 + 4, VGIC_ACCESS_32bit), 535 + REGISTER_DESC_WITH_LENGTH_UACCESS(GICR_ICACTIVER0, 536 + vgic_mmio_read_active, vgic_mmio_write_cactive, 537 + NULL, vgic_mmio_uaccess_write_cactive, 538 + 4, VGIC_ACCESS_32bit), 537 539 REGISTER_DESC_WITH_LENGTH(GICR_IPRIORITYR0, 538 540 vgic_mmio_read_priority, vgic_mmio_write_priority, 32, 539 541 VGIC_ACCESS_32bit | VGIC_ACCESS_8bit),