This series fixes an issue where devices bound to vfio-pci are not reset when they are released. Skipping the reset has unpredictable results depending on the device, and can cause errors when accessing the device later or binding to a different driver. The first patch in this series fixes a life cycle issue that was discovered in an earlier revision of the series. Thank you Alex, Jason, and Kevin for your reviews and feedback. This revision includes the changes suggested on v5, but without any changes to vfio_device_set_open_count(). Anthony v5 -> v6: - Added a call to lockdep_assert_held() in patch 3 - Corrected "vfio_container_device_register()" in the patch 1 commit message v5: https://lore.kernel.org/kvm/20221105224458.8180-1-ajderossi@xxxxxxxxx/ v4 -> v5: - Replaced patch 2 with a patch that introduces a new function to get the open count of a device set - Updated patch 3 to use the new function v4: https://lore.kernel.org/kvm/20221104195727.4629-1-ajderossi@xxxxxxxxx/ v3 -> v4: - Added a patch to fix device registration life cycle - Added a patch to add a public open_count on vfio_device_set - Changed the implementation to avoid private open_count usage v3: https://lore.kernel.org/kvm/20221102055732.2110-1-ajderossi@xxxxxxxxx/ v2 -> v3: - Added WARN_ON() - Revised commit message v2: https://lore.kernel.org/kvm/20221026194245.1769-1-ajderossi@xxxxxxxxx/ v1 -> v2: - Changed reset behavior instead of open_count ordering - Retitled from "vfio: Decrement open_count before close_device()" v1: https://lore.kernel.org/kvm/20221025193820.4412-1-ajderossi@xxxxxxxxx/ Anthony DeRossi (3): vfio: Fix container device registration life cycle vfio: Export the device set open count vfio/pci: Check the device set open count on reset drivers/vfio/pci/vfio_pci_core.c | 10 +++++----- drivers/vfio/vfio_main.c | 26 +++++++++++++++++++++----- include/linux/vfio.h | 1 + 3 files changed, 27 insertions(+), 10 deletions(-) -- 2.37.4