On Wed, 13 Dec 2017 10:35:57 +0100 Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote: > After the vcpu_load/vcpu_put pushdown, the handling of asynchronous VCPU > ioctl is already much clearer in that it is obvious that they bypass > vcpu_load and vcpu_put. > > However, it is still not perfect in that the different state of the VCPU > mutex is still hidden in the caller. Separate those ioctls into a new > function kvm_arch_vcpu_async_ioctl that returns -ENOIOCTLCMD for more > "traditional" synchronous ioctls. > > Cc: James Hogan <jhogan@xxxxxxxxxx> > Cc: Paul Mackerras <paulus@xxxxxxxxxx> > Cc: Christian Borntraeger <borntraeger@xxxxxxxxxx> > Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> > Reviewed-by: Cornelia Huck <cohuck@xxxxxxxxxx> > Suggested-by: Cornelia Huck <cohuck@xxxxxxxxxx> > Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> > --- > arch/mips/kvm/Kconfig | 1 + > arch/mips/kvm/mips.c | 15 ++++++++++++--- > arch/powerpc/kvm/Kconfig | 1 + > arch/powerpc/kvm/powerpc.c | 14 +++++++++++--- > arch/s390/kvm/Kconfig | 1 + > arch/s390/kvm/kvm-s390.c | 16 ++++++++++++---- > include/linux/kvm_host.h | 11 +++++++++++ > virt/kvm/kvm_main.c | 12 +++++------- > 8 files changed, 54 insertions(+), 17 deletions(-) Using HAVE_KVM_VCPU_ASYNC_IOCTL looks good to me.