
Compared with the previous IPIV, the IPIV-BUGFIX has the following changes: 1. Use Kconfig to Control whether to enable IPIV. 2. Users use ioctl to control whether to enable IPIV. 3. Use the SMCCC interface for Guest OS to control whether to enable IPIV. 4. make sure vcpu_id == vcpu_idx. 5. the MPIDR cannot be changed When IPIV is enabled. 6. fix bug that ipiv enable is displayed on the host when "kvm-arm.vgic_v4_enable=0 kvm-arm.ipiv_enabled=1" is configured. 7. Add Exception Printing Patch#1 arm64/config: add config to control whether enable IPIV feature Patch#2 KVM: arm64: Introduce ipiv enable ioctl Patch#3 KVM: arm64: Document PV-sgi interface Patch#4 KVM: arm64: Implement PV_SGI related calls Patch#5 irqchip/gic: Add HiSilicon PV SGI support Patch#6 kvm: hisi: make sure vcpu_id and vcpu_idx have same value in IPIv Patch#7 kvm: hisi: Don't allow to change mpidr in IPIv Patch#8 KVM: arm64: using kvm_vgic_global_state for ipiv Patch#9 kvm: hisi: print error for IPIV Patch#10 arm64/kabi: use KABI_EXTEND to skip KABI check Jinqian Yang (4): arm64/config: add config to control whether enable IPIV feature KVM: arm64: using kvm_vgic_global_state for ipiv kvm: hisi: print error for IPIV arm64/kabi: use KABI_EXTEND to skip KABI check Zhou Wang (6): KVM: arm64: Introduce ipiv enable ioctl KVM: arm64: Document PV-sgi interface KVM: arm64: Implement PV_SGI related calls irqchip/gic: Add HiSilicon PV SGI support kvm: hisi: make sure vcpu_id and vcpu_idx have same value in IPIv kvm: hisi: Don't allow to change mpidr in IPIv Documentation/virt/kvm/arm/pvsgi.rst | 33 ++++++++++++++++ arch/arm64/Kconfig | 13 ++++++ arch/arm64/configs/openeuler_defconfig | 1 + arch/arm64/include/asm/kvm_host.h | 3 ++ arch/arm64/kvm/arm.c | 34 ++++++++++++---- arch/arm64/kvm/hisilicon/hisi_virt.c | 25 +++++++++++- arch/arm64/kvm/hisilicon/hisi_virt.h | 20 ++++++++-- arch/arm64/kvm/hypercalls.c | 24 +++++++++++ arch/arm64/kvm/sys_regs.c | 34 +++++++++++----- arch/arm64/kvm/vgic/vgic-init.c | 42 +++++++++++++++++--- arch/arm64/kvm/vgic/vgic-mmio-v3.c | 2 + drivers/irqchip/irq-gic-v3-its.c | 50 ++++++++++++++++------- drivers/irqchip/irq-gic-v3.c | 55 ++++++++++++++++++++------ include/linux/arm-smccc.h | 15 +++++++ include/linux/irqchip/arm-gic-v3.h | 10 +++++ include/linux/irqchip/arm-gic-v4.h | 4 ++ 16 files changed, 311 insertions(+), 54 deletions(-) create mode 100644 Documentation/virt/kvm/arm/pvsgi.rst -- 2.33.0