mbox series

[v6,0/3] vfio/pci: Check the device set open count on reset

Message ID 20221110014027.28780-1-ajderossi@gmail.com (mailing list archive)
Headers show
Series vfio/pci: Check the device set open count on reset | expand

Message

Anthony DeRossi Nov. 10, 2022, 1:40 a.m. UTC
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@gmail.com/

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@gmail.com/

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@gmail.com/

v2 -> v3:
- Added WARN_ON()
- Revised commit message
v2: https://lore.kernel.org/kvm/20221026194245.1769-1-ajderossi@gmail.com/

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@gmail.com/

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(-)

Comments

Alex Williamson Nov. 10, 2022, 8:16 p.m. UTC | #1
On Wed,  9 Nov 2022 17:40:24 -0800
Anthony DeRossi <ajderossi@gmail.com> wrote:

> 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@gmail.com/
> 
> 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@gmail.com/
> 
> 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@gmail.com/
> 
> v2 -> v3:
> - Added WARN_ON()
> - Revised commit message
> v2: https://lore.kernel.org/kvm/20221026194245.1769-1-ajderossi@gmail.com/
> 
> 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@gmail.com/
> 
> 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(-)
> 

Applied to vfio for-linus branch for v6.1.  Thanks,

Alex