On Mon, Jan 07, 2019 at 07:43:17PM +0100, Cédric Le Goater wrote: > This is the basic framework for the new KVM device supporting the XIVE > native exploitation mode. The user interface exposes a new capability > and a new KVM device to be used by QEMU. [snip] > @@ -1039,7 +1039,10 @@ static int kvmppc_book3s_init(void) > #ifdef CONFIG_KVM_XIVE > if (xive_enabled()) { > kvmppc_xive_init_module(); > + kvmppc_xive_native_init_module(); > kvm_register_device_ops(&kvm_xive_ops, KVM_DEV_TYPE_XICS); > + kvm_register_device_ops(&kvm_xive_native_ops, > + KVM_DEV_TYPE_XIVE); I think we want tighter conditions on initializing the xive_native stuff and creating the xive device class. We could have xive_enabled() returning true in a guest, and this code will get called both by PR KVM and HV KVM (and HV KVM no longer implies that we are running bare metal). > @@ -1050,8 +1053,10 @@ static int kvmppc_book3s_init(void) > static void kvmppc_book3s_exit(void) > { > #ifdef CONFIG_KVM_XICS > - if (xive_enabled()) > + if (xive_enabled()) { > kvmppc_xive_exit_module(); > + kvmppc_xive_native_exit_module(); Same comment here. Paul.