Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

drivers/vfio/device_cdev.c vfio_df_ioctl_bind_iommufd() -> vfio_df_close()

Type Parameter Key Value
PARAM_VALUE 0 df 4096-ptr_max
PARAM_VALUE 0 df->access_granted 0
PARAM_VALUE 0 df->device 4096-ptr_max
PARAM_VALUE 0 df->device->dev->driver->owner->refcnt.counter 0-s32max
PARAM_VALUE 0 df->device->dev_set->lock.dep_map->name 0-255
PARAM_VALUE 0 df->device->dev_set->lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 df->device->dev_set->lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 df->device->dev_set->lock.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 df->device->dev_set->lock.wait_lock.owner (-1)
PARAM_VALUE 0 df->device->dev_set->lock.wait_lock.owner_cpu u32max
PARAM_VALUE 0 df->device->group 4096-ptr_max
PARAM_VALUE 0 df->device->group->container->iommu_data->device_list_lock.dep_map->name 0-255
PARAM_VALUE 0 df->device->group->container->iommu_data->device_list_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 df->device->group->container->iommu_data->lock.dep_map->name 0-255
PARAM_VALUE 0 df->device->group->container->iommu_data->lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 df->device->group->container->iommu_data->lock.first_waiter->list.prev->prev 5159360019465732096
PARAM_VALUE 0 df->device->group->container->iommu_data->lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 df->device->group->group_lock.dep_map->name 0-255
PARAM_VALUE 0 df->device->group->group_lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 df->device->group->group_lock.first_waiter->task->blocked_lock.dep_map->name 0-255
PARAM_VALUE 0 df->device->group->group_lock.first_waiter->task->blocked_lock.owner (-1)
PARAM_VALUE 0 df->device->group->group_lock.first_waiter->task->blocked_lock.owner_cpu 4294967295
PARAM_VALUE 0 df->device->group->group_lock.first_waiter->task->usage.refs.counter s32min-s32max
PARAM_VALUE 0 df->device->group->group_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 df->device->group->opened_file 0
PARAM_VALUE 0 df->device->iommu_entry.next 4096-ptr_max
PARAM_VALUE 0 df->device->iommu_entry.prev 4096-ptr_max
PARAM_VALUE 0 df->device->iommufd_access 4096-ptr_max
PARAM_VALUE 0 df->device->kvm 1-u64max
PARAM_VALUE 0 df->device->ops 4096-ptr_max
PARAM_VALUE 0 df->device->ops->match_token_uuid 0,5169803798861357056
PARAM_VALUE 0 df->device->put_kvm 1-u64max
PARAM_VALUE 0 df->group 0
PARAM_VALUE 0 df->iommufd 0-ptr_max
PARAM_VALUE 0 df->kvm_ref_lock.rlock.dep_map->name 0-255
BUF_SIZE 0 df s32min-(-2),1-s32max
BUF_SIZE 0 df s32min-(-2),1-s32max
BUF_SIZE 0 df->iommufd s32min-(-2),1-s32max
DATA_SOURCE 0 df $0
NOCHECK_CALL
LOCK2 &device->dev_set->lock
TYPE_LOCK (struct vfio_device_set)->lock

drivers/vfio/device_cdev.c vfio_df_unbind_iommufd() -> vfio_df_close()

Type Parameter Key Value
PARAM_VALUE 0 df 4096-ptr_max
PARAM_VALUE 0 df->access_granted 1-255
PARAM_VALUE 0 df->device 4096-ptr_max
PARAM_VALUE 0 df->device->dev_set->lock.dep_map->name 0-255
PARAM_VALUE 0 df->device->dev_set->lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 df->device->dev_set->lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 df->device->dev_set->lock.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 df->device->dev_set->lock.wait_lock.owner (-1)
PARAM_VALUE 0 df->device->dev_set->lock.wait_lock.owner_cpu u32max
PARAM_VALUE 0 df->group 0
BUF_SIZE 0 df (-1),26
BUF_SIZE 0 df (-1),26
DATA_SOURCE 0 df $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &device->dev_set->lock
TYPE_LOCK (struct vfio_device_set)->lock

drivers/vfio/group.c vfio_df_group_close() -> vfio_df_close()

Type Parameter Key Value
PARAM_VALUE 0 df 4096-ptr_max
PARAM_VALUE 0 df->device 4096-ptr_max
PARAM_VALUE 0 df->device->dev_set->lock.dep_map->name 0-255
PARAM_VALUE 0 df->device->dev_set->lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 df->device->dev_set->lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 df->device->dev_set->lock.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 df->device->dev_set->lock.wait_lock.owner (-1)
PARAM_VALUE 0 df->device->dev_set->lock.wait_lock.owner_cpu u32max
PARAM_VALUE 0 df->device->group->group_lock.dep_map->name 0-255
PARAM_VALUE 0 df->device->group->group_lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 df->device->group->group_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 df->device->group->group_lock.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 df->device->group->group_lock.wait_lock.owner (-1)
PARAM_VALUE 0 df->device->group->group_lock.wait_lock.owner_cpu u32max
BUF_SIZE 0 df (-1),26,112
BUF_SIZE 0 df (-1),26,112
DATA_SOURCE 0 df $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &device->dev_set->lock
LOCK2 &device->group->group_lock
TYPE_LOCK (struct vfio_device_set)->lock
TYPE_LOCK (struct vfio_group)->group_lock

drivers/vfio/group.c vfio_df_group_open() -> vfio_df_close()

Type Parameter Key Value
PARAM_VALUE 0 df 4096-ptr_max
PARAM_VALUE 0 df->device 4096-ptr_max
PARAM_VALUE 0 df->device->dev->driver->owner->refcnt.counter 0-s32max
PARAM_VALUE 0 df->device->dev_set->lock.dep_map->name 0-255
PARAM_VALUE 0 df->device->dev_set->lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 df->device->dev_set->lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 df->device->dev_set->lock.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 df->device->dev_set->lock.wait_lock.owner (-1)
PARAM_VALUE 0 df->device->dev_set->lock.wait_lock.owner_cpu u32max
PARAM_VALUE 0 df->device->group 4096-ptr_max
PARAM_VALUE 0 df->device->group->container->iommu_data->device_list_lock.dep_map->name 0-255
PARAM_VALUE 0 df->device->group->container->iommu_data->device_list_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 df->device->group->container->iommu_data->lock.dep_map->name 0-255
PARAM_VALUE 0 df->device->group->container->iommu_data->lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 df->device->group->container->iommu_data->lock.first_waiter->list.prev->prev 5159360019465732096
PARAM_VALUE 0 df->device->group->container->iommu_data->lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 df->device->group->group_lock.dep_map->name 0-255
PARAM_VALUE 0 df->device->group->group_lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 df->device->group->group_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 df->device->group->group_lock.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 df->device->group->group_lock.wait_lock.owner (-1)
PARAM_VALUE 0 df->device->group->group_lock.wait_lock.owner_cpu u32max
PARAM_VALUE 0 df->device->iommu_entry.next 4096-ptr_max
PARAM_VALUE 0 df->device->iommu_entry.prev 4096-ptr_max
PARAM_VALUE 0 df->device->iommufd_access 4096-ptr_max
PARAM_VALUE 0 df->device->open_count 1
PARAM_VALUE 0 df->device->refcount.refs.counter (-1073741824),0-s32max
PARAM_VALUE 0 df->iommufd 1-u64max
PARAM_VALUE 0 df->iommufd->vfio_ioas->obj.users.refs.counter s32min-s32max
PARAM_VALUE 0 df->iommufd->vfio_ioas->obj.wait_cnt.refs.counter (-1073741824),0-s32max
BUF_SIZE 0 df 112
DATA_SOURCE 0 df $0
NOCHECK_CALL
LOCK2 &device->dev_set->lock
LOCK2 &device->group->group_lock
TYPE_LOCK (struct vfio_device_set)->lock
TYPE_LOCK (struct vfio_group)->group_lock