On Tue, Aug 16, 2022 at 05:39:37AM +0000, Sean Christopherson wrote: > Invoke kvm_coalesced_mmio_init() from kvm_create_vm() now that allocating > and initializing coalesced MMIO objects is separate from registering any > associated devices. Moving coalesced MMIO cleans up the last oddity > where KVM does VM creation/initialization after kvm_create_vm(), and more > importantly after kvm_arch_post_init_vm() is called and the VM is added > to the global vm_list, i.e. after the VM is fully created as far as KVM > is concerned. > > Originally, kvm_coalesced_mmio_init() was called by kvm_create_vm(), but > the original implementation was completely devoid of error handling. > Commit 6ce5a090a9a0 ("KVM: coalesced_mmio: fix kvm_coalesced_mmio_init()'s > error handling" fixed the various bugs, and in doing so rightly moved the > call to after kvm_create_vm() because kvm_coalesced_mmio_init() also > registered the coalesced MMIO device. Commit 2b3c246a682c ("KVM: Make > coalesced mmio use a device per zone") cleaned up that mess by having > each zone register a separate device, i.e. moved device registration to > its logical home in kvm_vm_ioctl_register_coalesced_mmio(). As a result, > kvm_coalesced_mmio_init() is now a "pure" initialization helper and can > be safely called from kvm_create_vm(). > > Opportunstically drop the #ifdef, KVM provides stubs for > kvm_coalesced_mmio_{init,free}() when CONFIG_KVM_MMIO=n (arm). ^^^ We have CONFIG_KVM_MMIO=y on arm64. Is it actually s390? -- Thanks, Oliver