This is a follow-up to [1], which aims a performing a bunch of cleanups in the way we expose sysregs to userspace, with a particular focus on the GICv3 part of that code. * From v1: - A couple of extra cleanups thanks to Reiji's comments - A fix for the breakage of the legacy GICv2 address setup - Collected RBs from Reiji and Oliver, with thanks. [1] https://lore.kernel.org/r/20220706164304.1582687-1-maz@xxxxxxxxxx Marc Zyngier (20): KVM: arm64: Add get_reg_by_id() as a sys_reg_desc retrieving helper KVM: arm64: Reorder handling of invariant sysregs from userspace KVM: arm64: Introduce generic get_user/set_user helpers for system registers KVM: arm64: Rely on index_to_param() for size checks on userspace access KVM: arm64: Consolidate sysreg userspace accesses KVM: arm64: Get rid of reg_from/to_user() KVM: arm64: vgic-v3: Simplify vgic_v3_has_cpu_sysregs_attr() KVM: arm64: vgic-v3: Push user access into vgic_v3_cpu_sysregs_uaccess() KVM: arm64: vgic-v3: Make the userspace accessors use sysreg API KVM: arm64: vgic-v3: Convert userspace accessors over to FIELD_GET/FIELD_PREP KVM: arm64: vgic-v3: Use u32 to manage the line level from userspace KVM: arm64: vgic-v3: Consolidate userspace access for MMIO registers KVM: arm64: vgic-v2: Consolidate userspace access for MMIO registers KVM: arm64: vgic: Use {get,put}_user() instead of copy_{from.to}_user KVM: arm64: vgic-v2: Add helper for legacy dist/cpuif base address setting KVM: arm64: vgic: Consolidate userspace access for base address setting KVM: arm64: vgic: Tidy-up calls to vgic_{get,set}_common_attr() KVM: arm64: Get rid of find_reg_by_id() KVM: arm64: Descope kvm_arm_sys_reg_{get,set}_reg() KVM: arm64: Get rid or outdated comments arch/arm64/include/asm/kvm_host.h | 2 - arch/arm64/kvm/arm.c | 11 +- arch/arm64/kvm/sys_regs.c | 282 +++++++--------- arch/arm64/kvm/sys_regs.h | 18 +- arch/arm64/kvm/vgic-sys-reg-v3.c | 462 +++++++++++++++----------- arch/arm64/kvm/vgic/vgic-kvm-device.c | 342 ++++++++----------- arch/arm64/kvm/vgic/vgic-mmio-v3.c | 10 +- arch/arm64/kvm/vgic/vgic-mmio.c | 6 +- arch/arm64/kvm/vgic/vgic-mmio.h | 4 +- arch/arm64/kvm/vgic/vgic.h | 9 +- include/kvm/arm_vgic.h | 2 +- 11 files changed, 547 insertions(+), 601 deletions(-) -- 2.34.1