This patchset adds necessary userspace API in order to support vGICv3 live migration. GICv3 registers are accessed using device attribute ioctls, similar to GICv2. v5 => v6: - Rebased on top of linux-next of 23.11.2015 - Use original API documentation patch, with minor changes only. - Quit reusing KVM_DEV_ARM_VGIC_CPUID_MASK, do not touch vGICv2 API at all. - Fixed some issues reported by the new checkpatch v4 => v5: - Adapted to new API by Peter Maydell, Marc Zyngier and Christoffer Dall. Acked-by's on the documentation were dropped, just in case, because i slightly adjusted it. Additionally, i merged all doc updates into one patch. v3 => v4: - Split pure refactoring from anything else - Documentation brought up to date - Cleaned up 'mmio' structure usage in vgic_attr_regs_access(), use call_range_handler() for 64-bit access handling - Rebased on new linux-next v2 => v3: - KVM_DEV_ARM_VGIC_CPUID_MASK enlarged to 20 bits, allowing more than 256 CPUs. - Bug fix: Correctly set mmio->private, necessary for redistributor access. - Added accessors for ICC_AP0R and ICC_AP1R registers - Rebased on new linux-next v1 => v2: - Do not use generic register get/set API for CPU interface, use only device attributes. - Introduce size specifier for distributor and redistributor register accesses, do not assume size any more. - Lots of refactor and reusable code extraction. - Added forgotten documentation Christoffer Dall (1): KVM: arm/arm64: Add VGICv3 save/restore API documentation Pavel Fedin (6): KVM: arm/arm64: Move endianness conversion out of vgic_attr_regs_access() KVM: arm/arm64: Refactor vGIC attributes handling code KVM: arm64: Implement vGICv3 distributor and redistributor access from userspace KVM: arm64: Refactor system register handlers KVM: arm64: Introduce find_reg_by_id() KVM: arm64: Implement vGICv3 CPU interface access Documentation/virtual/kvm/devices/arm-vgic-v3.txt | 116 ++++++++ Documentation/virtual/kvm/devices/arm-vgic.txt | 21 +- arch/arm64/include/uapi/asm/kvm.h | 15 +- arch/arm64/kvm/sys_regs.c | 83 +++--- arch/arm64/kvm/sys_regs.h | 8 +- arch/arm64/kvm/sys_regs_generic_v8.c | 2 +- include/linux/irqchip/arm-gic-v3.h | 19 +- virt/kvm/arm/vgic-v2-emul.c | 124 ++------ virt/kvm/arm/vgic-v3-emul.c | 342 +++++++++++++++++++++- virt/kvm/arm/vgic.c | 57 ++++ virt/kvm/arm/vgic.h | 3 + 11 files changed, 616 insertions(+), 174 deletions(-) create mode 100644 Documentation/virtual/kvm/devices/arm-vgic-v3.txt -- 2.4.4 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html