This patchset moves kvm io_device destruction into kvm_io_bus_unregister_dev. This reduces LOCs a bit for users and can avoid the leakage of destructing the device explicitly. Accordingly, below cleanups are included: - remove the exposure of kvm_iodevice_destructor and the invocation in the users as kvm_iodevice_destructor is now invoked in kvm_io_bus_unregister_dev; - Change kvm_deassign_ioeventfd_idx to use list_for_each_entry as the loop ends at the entry that's founded and deleted. The patches are rebased to https://github.com/kvm-x86/linux/commit/b1cb1fac22ab Changelog: v1->v2: - keep kfree(bus) when the new bus is successfully allocated - add patch 2 Previous version: https://lore.kernel.org/lkml/20221229123302.4083-1-wei.w.wang@xxxxxxxxx/ Wei Wang (2): KVM: destruct kvm_io_device while unregistering it from kvm_io_bus kvm/eventfd: use list_for_each_entry when deassign ioeventfd include/kvm/iodev.h | 6 ------ virt/kvm/coalesced_mmio.c | 9 ++------- virt/kvm/eventfd.c | 6 ++---- virt/kvm/kvm_main.c | 23 +++++++++++++++-------- 4 files changed, 19 insertions(+), 25 deletions(-) -- 2.27.0