summaryrefslogtreecommitdiff
path: root/arch/powerpc/kvm/mpic.c
diff options
context:
space:
mode:
authorPaul Mackerras <paulus@ozlabs.org>2017-10-26 17:00:22 +1100
committerPaul Mackerras <paulus@ozlabs.org>2017-11-01 15:09:32 +1100
commit00bb6ae5006205e041ce9784c819460562351d47 (patch)
tree160bc3ef885ab48be48b15c7d00b4b0a827a1a63 /arch/powerpc/kvm/mpic.c
parent891f1ebf659edd24bba93182a8de0ba082dcff72 (diff)
downloadlinux-00bb6ae5006205e041ce9784c819460562351d47.tar.gz
KVM: PPC: Book3S HV: Don't call real-mode XICS hypercall handlers if not enabled
When running a guest on a POWER9 system with the in-kernel XICS emulation disabled (for example by running QEMU with the parameter "-machine pseries,kernel_irqchip=off"), the kernel does not pass the XICS-related hypercalls such as H_CPPR up to userspace for emulation there as it should. The reason for this is that the real-mode handlers for these hypercalls don't check whether a XICS device has been instantiated before calling the xics-on-xive code. That code doesn't check either, leading to potential NULL pointer dereferences because vcpu->arch.xive_vcpu is NULL. Those dereferences won't cause an exception in real mode but will lead to kernel memory corruption. This fixes it by adding kvmppc_xics_enabled() checks before calling the XICS functions. Cc: stable@vger.kernel.org # v4.11+ Fixes: 5af50993850a ("KVM: PPC: Book3S HV: Native usage of the XIVE interrupt controller") Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
Diffstat (limited to 'arch/powerpc/kvm/mpic.c')
0 files changed, 0 insertions, 0 deletions