Re: [PATCH v4 4/6] KVM/vfio: Use file-based reference counting for KVM

From: Alex Williamson

Date: Thu Oct 01 2026 - 13:49:04 EST


On Mon, 28 Sep 2026 15:07:05 +0200
Steffen Eiden <seiden@xxxxxxxxxxxxx> wrote:
> diff --git a/drivers/vfio/vfio_main.c b/drivers/vfio/vfio_main.c
> index 423ead48aafe..ed96acfa8635 100644
> --- a/drivers/vfio/vfio_main.c
> +++ b/drivers/vfio/vfio_main.c
> @@ -472,36 +472,14 @@ void vfio_unregister_group_dev(struct vfio_device *device)
> EXPORT_SYMBOL_GPL(vfio_unregister_group_dev);
>
> #if IS_ENABLED(CONFIG_KVM)
> -void vfio_device_get_kvm_safe(struct vfio_device *device, struct kvm *kvm)
> +void vfio_device_get_kvm_safe(struct vfio_device *device, struct file *kvm)
> {
> - void (*pfn)(struct kvm *kvm);
> - bool (*fn)(struct kvm *kvm);
> - bool ret;
> -
> lockdep_assert_held(&device->dev_set->lock);
>
> if (!kvm)
> return;
>
> - pfn = symbol_get(kvm_put_kvm);
> - if (WARN_ON(!pfn))
> - return;
> -
> - fn = symbol_get(kvm_get_kvm_safe);
> - if (WARN_ON(!fn)) {
> - symbol_put(kvm_put_kvm);
> - return;
> - }
> -
> - ret = fn(kvm);
> - symbol_put(kvm_get_kvm_safe);
> - if (!ret) {
> - symbol_put(kvm_put_kvm);
> - return;
> - }
> -
> - device->put_kvm = pfn;
> - device->kvm = kvm;
> + device->kvm = get_file(kvm);
> }

Nit, retaining the "_safe" naming here and through the callers is now
meaningless and could be dropped. Otherwise,

Acked-by: Alex Williamson <alex@xxxxxxxxxxx>

Thanks,
Alex