The first patch in this series fixes a KVM PR host crash due to a guest executing the scv instruction or with a pseries SMP host, the host CPUs executing the scv instruction while a PR guest is running.
The second patch fixes unimplemented H_SET_MODE AIL modes by returning failure from the hcall rather than succeeding but not implementing the required behaviour. This works around missing host scv support for scv-capable Linux guests by causing them to disable the facility. The third patch adds a new KVM CAP to go with some QEMU work to get the AIL differences properly represented in QEMU. The third patch will need to allocate a KVM CAP number and merged with upstream KVM tree before the QEMU side goes ahead. Changes since v2: - Fix fscr compile error in patch 1. - Add patch 3. Thanks, Nick Nicholas Piggin (3): KVM: PPC: Book3S PR: Disable SCV when AIL could be disabled KVM: PPC: Book3S PR: Disallow AIL != 0 KVM: PPC: Add KVM_CAP_PPC_AIL_MODE_3 Documentation/virt/kvm/api.rst | 14 +++++++++++++ arch/powerpc/include/asm/setup.h | 2 ++ arch/powerpc/kernel/exceptions-64s.S | 4 ++++ arch/powerpc/kernel/setup_64.c | 28 ++++++++++++++++++++++++++ arch/powerpc/kvm/Kconfig | 9 +++++++++ arch/powerpc/kvm/book3s_pr.c | 26 +++++++++++++++--------- arch/powerpc/kvm/book3s_pr_papr.c | 20 ++++++++++++++++++ arch/powerpc/kvm/powerpc.c | 20 ++++++++++++++++++ arch/powerpc/platforms/pseries/setup.c | 12 ++++++++++- include/uapi/linux/kvm.h | 1 + tools/include/uapi/linux/kvm.h | 1 + 11 files changed, 127 insertions(+), 10 deletions(-) -- 2.23.0