KVM: x86/xen: Fix cleanup logic in emulation of Xen schedop poll hypercalls
authorManuel Andreas <manuel.andreas@tum.de>
Wed, 23 Jul 2025 15:51:20 +0000 (17:51 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 23 Jul 2025 21:48:54 +0000 (23:48 +0200)
commit5a53249d149f48b558368c5338b9921b76a12f8c
tree12b8cb7e5f4640811d9b3f1d953964f4cac07cb7
parent4b7d440de209cb2bb83827c30107ba05884a50c7
KVM: x86/xen: Fix cleanup logic in emulation of Xen schedop poll hypercalls

kvm_xen_schedop_poll does a kmalloc_array() when a VM polls the host
for more than one event channel potr (nr_ports > 1).

After the kmalloc_array(), the error paths need to go through the
"out" label, but the call to kvm_read_guest_virt() does not.

Fixes: 92c58965e965 ("KVM: x86/xen: Use kvm_read_guest_virt() instead of open-coding it badly")
Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Manuel Andreas <manuel.andreas@tum.de>
[Adjusted commit message. - Paolo]
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/xen.c