Skip to content

Commit 5c6de3e

Browse files
yiliu1765awilliam
authored andcommitted
vfio: Test kvm pointer in _vfio_device_get_kvm_safe()
This saves some lines when adding the kvm get logic for the vfio_device cdev path. This also renames _vfio_device_get_kvm_safe() to be vfio_device_get_kvm_safe(). Suggested-by: Jason Gunthorpe <[email protected]> Reviewed-by: Jason Gunthorpe <[email protected]> Tested-by: Zhenzhong Duan <[email protected]> Tested-by: Yanting Jiang <[email protected]> Signed-off-by: Yi Liu <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Alex Williamson <[email protected]>
1 parent 8b6f173 commit 5c6de3e

File tree

3 files changed

+8
-10
lines changed

3 files changed

+8
-10
lines changed

drivers/vfio/group.c

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -160,12 +160,7 @@ static int vfio_group_ioctl_set_container(struct vfio_group *group,
160160
static void vfio_device_group_get_kvm_safe(struct vfio_device *device)
161161
{
162162
spin_lock(&device->group->kvm_ref_lock);
163-
if (!device->group->kvm)
164-
goto unlock;
165-
166-
_vfio_device_get_kvm_safe(device, device->group->kvm);
167-
168-
unlock:
163+
vfio_device_get_kvm_safe(device, device->group->kvm);
169164
spin_unlock(&device->group->kvm_ref_lock);
170165
}
171166

drivers/vfio/vfio.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -340,11 +340,11 @@ enum { vfio_noiommu = false };
340340
#endif
341341

342342
#ifdef CONFIG_HAVE_KVM
343-
void _vfio_device_get_kvm_safe(struct vfio_device *device, struct kvm *kvm);
343+
void vfio_device_get_kvm_safe(struct vfio_device *device, struct kvm *kvm);
344344
void vfio_device_put_kvm(struct vfio_device *device);
345345
#else
346-
static inline void _vfio_device_get_kvm_safe(struct vfio_device *device,
347-
struct kvm *kvm)
346+
static inline void vfio_device_get_kvm_safe(struct vfio_device *device,
347+
struct kvm *kvm)
348348
{
349349
}
350350

drivers/vfio/vfio_main.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -373,14 +373,17 @@ void vfio_unregister_group_dev(struct vfio_device *device)
373373
EXPORT_SYMBOL_GPL(vfio_unregister_group_dev);
374374

375375
#ifdef CONFIG_HAVE_KVM
376-
void _vfio_device_get_kvm_safe(struct vfio_device *device, struct kvm *kvm)
376+
void vfio_device_get_kvm_safe(struct vfio_device *device, struct kvm *kvm)
377377
{
378378
void (*pfn)(struct kvm *kvm);
379379
bool (*fn)(struct kvm *kvm);
380380
bool ret;
381381

382382
lockdep_assert_held(&device->dev_set->lock);
383383

384+
if (!kvm)
385+
return;
386+
384387
pfn = symbol_get(kvm_put_kvm);
385388
if (WARN_ON(!pfn))
386389
return;

0 commit comments

Comments
 (0)