Paolo, Please do a pull from my kvm-ppc-next branch to get a PPC KVM update to go into 4.12. I have re-done the branch to avoid the bisection breakage that Alexey noted. The highlights are: * In-kernel acceleration for IOMMU update hypercalls, from Alexey Kardashevskiy. * Extend the set of load/store instructions which can be used to access emulated MMIO locations to include floating-point and vector-scalar instructions, from Bin Lu and myself. * Some fixes to allow PCI pass-through to work in nested guests using PR KVM, from Alexey Kardashevskiy. There will be a conflict in include/uapi/linux/kvm.h when you do the merge, which can easily be fixed by assigning the next available number for KVM_CAP_SPAPR_TCE_VFIO. Note that some of the commits here came from Michael Ellerman's topic/ppc-kvm branch and will also go upstream via his tree. Thanks, Paul. The following changes since commit f7b1a77d3bfbdc7e91a1e48e0a3dc10e7d890e04: Merge tag 'kvm-s390-next-4.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux (2017-04-11 20:54:40 +0200) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc kvm-ppc-next for you to fetch changes up to feafd13c96d6e2998d3da81bb55db379fcf02499: KVM: PPC: Book3S PR: Do not fail emulation with mtspr/mfspr for unknown SPRs (2017-04-20 11:39:32 +1000) ---------------------------------------------------------------- Alexey Kardashevskiy (15): powerpc/mmu: Add real mode support for IOMMU preregistered memory powerpc/powernv/iommu: Add real mode version of iommu_table_ops::exchange() powerpc/iommu/vfio_spapr_tce: Cleanup iommu_table disposal powerpc/vfio_spapr_tce: Add reference counting to iommu_table KVM: PPC: Add MMIO emulation for stdx (store doubleword indexed) KVM: PPC: Book3S PR: Get rid of unused local variable KVM: PPC: Book3S PR: Exit KVM on failed mapping KVM: PPC: Book3S PR: Preserve storage control bits KVM: PPC: Align the table size to system page size KVM: PPC: Reserve KVM_CAP_SPAPR_TCE_VFIO capability number KVM: PPC: Enable IOMMU_API for KVM_BOOK3S_64 permanently KVM: PPC: Pass kvm* to kvmppc_find_table() KVM: PPC: Use preregistered memory API to access TCE list KVM: PPC: iommu: Unify TCE checking KVM: PPC: VFIO: Add in-kernel acceleration for VFIO Bin Lu (1): KVM: PPC: Book3S: Add MMIO emulation for FP and VSX instructions Markus Elfring (2): KVM: PPC: Book3S HV: Use common error handling code in kvmppc_clr_passthru_irq() KVM: PPC: e500: Use kcalloc() in e500_mmu_host_init() Paul Mackerras (4): KVM: PPC: Provide functions for queueing up FP/VEC/VSX unavailable interrupts KVM: PPC: Emulation for more integer loads and stores KVM: PPC: Add MMIO emulation for remaining floating-point instructions Merge remote-tracking branch 'remotes/powerpc/topic/ppc-kvm' into kvm-ppc-next Thomas Huth (1): KVM: PPC: Book3S PR: Do not fail emulation with mtspr/mfspr for unknown SPRs Documentation/virtual/kvm/devices/vfio.txt | 18 +- arch/powerpc/include/asm/disassemble.h | 5 + arch/powerpc/include/asm/iommu.h | 32 +- arch/powerpc/include/asm/kvm_host.h | 32 ++ arch/powerpc/include/asm/kvm_ppc.h | 22 +- arch/powerpc/include/asm/mmu_context.h | 4 + arch/powerpc/include/asm/ppc-opcode.h | 58 ++++ arch/powerpc/kernel/iommu.c | 91 ++++-- arch/powerpc/kvm/Kconfig | 1 + arch/powerpc/kvm/book3s.c | 18 ++ arch/powerpc/kvm/book3s_64_mmu.c | 1 + arch/powerpc/kvm/book3s_64_mmu_host.c | 7 +- arch/powerpc/kvm/book3s_64_vio.c | 315 ++++++++++++++++++- arch/powerpc/kvm/book3s_64_vio_hv.c | 303 +++++++++++++++--- arch/powerpc/kvm/book3s_emulate.c | 34 ++- arch/powerpc/kvm/book3s_hv.c | 8 +- arch/powerpc/kvm/book3s_pr.c | 12 +- arch/powerpc/kvm/booke.c | 5 + arch/powerpc/kvm/e500_mmu_host.c | 5 +- arch/powerpc/kvm/emulate.c | 8 + arch/powerpc/kvm/emulate_loadstore.c | 472 ++++++++++++++++++++++++++--- arch/powerpc/kvm/powerpc.c | 320 ++++++++++++++++++- arch/powerpc/mm/mmu_context_iommu.c | 39 +++ arch/powerpc/platforms/powernv/pci-ioda.c | 46 ++- arch/powerpc/platforms/powernv/pci.c | 1 + arch/powerpc/platforms/pseries/iommu.c | 3 +- arch/powerpc/platforms/pseries/vio.c | 2 +- drivers/vfio/vfio_iommu_spapr_tce.c | 2 +- include/uapi/linux/kvm.h | 7 + virt/kvm/vfio.c | 105 +++++++ 30 files changed, 1799 insertions(+), 177 deletions(-)