Defined in 1 files as a function:

Referenced in 7 files:

Smatch caller information:

drivers/iommu/iommufd/selftest.c get_md_pagetable() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
BUF_SIZE 0 ictx s32min-(-2),1-s32max
BUF_SIZE 0 ictx s32min-(-2),1-s32max
NOCHECK_CALL

drivers/iommu/iommufd/selftest.c get_md_pagetable_nested() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
BUF_SIZE 0 ictx s32min-(-2),1-s32max
BUF_SIZE 0 ictx s32min-(-2),1-s32max
NOCHECK_CALL

drivers/iommu/iommufd/selftest.c iommufd_get_hwpt() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
PARAM_VALUE 1 obj->type 0-1,4-u32max
PARAM_VALUE 1 obj->users.refs.counter (-1073741824),0-s32max
PARAM_VALUE 1 obj->wait_cnt.refs.counter (-1073741824),0-s32max
BUF_SIZE 0 ictx s32min-(-2),1-s32max
BUF_SIZE 0 ictx s32min-(-2),1-s32max
DATA_SOURCE 1 obj r iommufd_get_object
NOCHECK_CALL

drivers/iommu/iommufd/selftest.c iommufd_test_add_reserved() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
NOCHECK_CALL

drivers/iommu/iommufd/selftest.c iommufd_test_dev_check_cache() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
NOCHECK_CALL

drivers/iommu/iommufd/selftest.c iommufd_test_dirty() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
NOCHECK_CALL

drivers/iommu/iommufd/selftest.c iommufd_test_get_selftest_obj() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
PARAM_VALUE 1 obj->users.refs.counter (-1073741824),0-s32max
PARAM_VALUE 1 obj->wait_cnt.refs.counter (-1073741824),0-s32max
BUF_SIZE 0 ictx s32min-(-2),1-s32max
BUF_SIZE 0 ictx s32min-(-2),1-s32max
DATA_SOURCE 0 ictx $0
DATA_SOURCE 1 obj r iommufd_get_object
NOCHECK_CALL

drivers/iommu/iommufd/selftest.c iommufd_test_md_check_iotlb() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
NOCHECK_CALL

drivers/iommu/iommufd/selftest.c iommufd_test_md_check_pa() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
NOCHECK_CALL

drivers/iommu/iommufd/selftest.c iommufd_test_mock_domain_replace() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
NOCHECK_CALL

drivers/iommu/iommufd/selftest.c iommufd_test_pasid_attach() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
NOCHECK_CALL

drivers/iommu/iommufd/selftest.c iommufd_test_pasid_check_hwpt() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
NOCHECK_CALL

drivers/iommu/iommufd/selftest.c iommufd_test_pasid_check_hwpt() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
NOCHECK_CALL

drivers/iommu/iommufd/selftest.c iommufd_test_pasid_detach() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
NOCHECK_CALL

drivers/iommu/iommufd/selftest.c iommufd_test_pasid_replace() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
NOCHECK_CALL

drivers/iommu/iommufd/selftest.c iommufd_test_syz_conv_iova_id() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
NOCHECK_CALL

drivers/iommu/iommufd/selftest.c iommufd_test_trigger_iopf() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
NOCHECK_CALL

drivers/iommu/iommufd/selftest.c iommufd_test_trigger_vevent() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
NOCHECK_CALL

drivers/iommu/iommufd/viommu.c iommufd_hw_queue_alloc_ioctl() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
NOCHECK_CALL

drivers/iommu/iommufd/viommu.c iommufd_vdevice_alloc_ioctl() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
NOCHECK_CALL

drivers/iommu/iommufd/viommu.c iommufd_vdevice_alloc_ioctl() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
NOCHECK_CALL

drivers/iommu/iommufd/viommu.c iommufd_vdevice_destroy() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/iommu/iommufd/viommu.c iommufd_viommu_alloc_ioctl() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
NOCHECK_CALL

drivers/iommu/iommufd/viommu.c iommufd_viommu_alloc_ioctl() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
NOCHECK_CALL

drivers/iommu/iommufd/device.c iommufd_access_change_ioas_id() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
BUF_SIZE 0 ictx s32min-(-1),1-s32max
BUF_SIZE 0 ictx s32min-(-1),1-s32max
NOCHECK_CALL
LOCK2 &access->ioas_lock
HALF_LOCKED2 &vdev->dev_set->lock
TYPE_LOCK (struct iommufd_access)->ioas_lock

drivers/iommu/iommufd/device.c iommufd_access_notify_unmap() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 0 ictx 1-u64max
PARAM_VALUE 1 obj 0-1025,1027-1029,1031-u64max
PARAM_VALUE 1 obj->users.refs.counter (-1073741824),0-s32max
PARAM_VALUE 1 obj->wait_cnt.refs.counter (-1073741824),0-s32max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/iommu/iommufd/device.c iommufd_device_auto_get_domain() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj->users.refs.counter (-1073741824),0-s32max
PARAM_VALUE 1 obj->wait_cnt.refs.counter (-1073741824),0-s32max
NOCHECK_CALL
LOCK2 &ioas->mutex
HALF_LOCKED2 &vdev->dev_set->lock
TYPE_LOCK (struct iommufd_ioas)->mutex

drivers/iommu/iommufd/device.c iommufd_device_auto_get_domain() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj->wait_cnt.refs.counter (-1073741824),0-s32max
NOCHECK_CALL
LOCK2 &ioas->mutex
HALF_LOCKED2 &vdev->dev_set->lock
TYPE_LOCK (struct iommufd_ioas)->mutex

drivers/iommu/iommufd/device.c iommufd_device_change_pt() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 0 ictx->objects.xa_lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 obj 4096-ptr_max
PARAM_VALUE 1 obj->type 2-4
PARAM_VALUE 1 obj->users.refs.counter (-1073741824),0-s32max
PARAM_VALUE 1 obj->wait_cnt.refs.counter (-1073741824),0-s32max
BUF_SIZE 0 ictx s32min-(-1),1-s32max
BUF_SIZE 0 ictx s32min-(-1),1-s32max
DATA_SOURCE 1 obj r iommufd_get_object
NOCHECK_CALL
HALF_LOCKED2 &vdev->dev_set->lock

drivers/iommu/iommufd/device.c iommufd_device_change_pt() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
PARAM_VALUE 1 obj->users.refs.counter (-1073741824),0-s32max
PARAM_VALUE 1 obj->wait_cnt.refs.counter (-1073741824),0-s32max
BUF_SIZE 0 ictx s32min-(-1),1-s32max
BUF_SIZE 0 ictx s32min-(-1),1-s32max
DATA_SOURCE 1 obj r iommufd_get_object
NOCHECK_CALL
HALF_LOCKED2 &vdev->dev_set->lock

drivers/iommu/iommufd/device.c iommufd_get_hw_info() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
NOCHECK_CALL

drivers/iommu/iommufd/vfio_compat.c iommufd_vfio_cc_iommu() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 0 ictx 4096-ptr_max
PARAM_VALUE 0 ictx->vfio_ioas 4096-ptr_max
PARAM_VALUE 0 ictx->vfio_ioas->obj.users.refs.counter (-1073741824),0-s32max
PARAM_VALUE 0 ictx->vfio_ioas->obj.wait_cnt.refs.counter (-1073741824),0-s32max
PARAM_VALUE 1 obj 4096-ptr_max
PARAM_VALUE 1 obj->users.refs.counter (-1073741824),0-s32max
PARAM_VALUE 1 obj->wait_cnt.refs.counter (-1073741824),0-s32max
BUF_SIZE 0 ictx s32min-(-2),1-s32max
BUF_SIZE 0 ictx s32min-(-2),1-s32max
DATA_SOURCE 0 ictx $0
NOCHECK_CALL

drivers/iommu/iommufd/vfio_compat.c iommufd_vfio_compat_ioas_create() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 0 ictx 4096-ptr_max
PARAM_VALUE 0 ictx->no_iommu_mode 0
PARAM_VALUE 0 ictx->objects.xa_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 ictx->vfio_ioas 4096-ptr_max
PARAM_VALUE 0 ictx->vfio_ioas->obj.users.refs.counter (-1073741824),0-s32max
PARAM_VALUE 0 ictx->vfio_ioas->obj.wait_cnt.refs.counter (-1073741824),0-s32max
PARAM_VALUE 1 obj 1-u64max
PARAM_VALUE 1 obj->users.refs.counter (-1073741824),0-s32max
PARAM_VALUE 1 obj->wait_cnt.refs.counter (-1073741824),0-s32max
BUF_SIZE 0 ictx s32min-(-2),1-s32max
BUF_SIZE 0 ictx s32min-(-2),1-s32max
DATA_SOURCE 0 ictx $0
PREEMPT_ADD <- disables preempt
NOCHECK_CALL
LOCK2 &(&ictx->objects)->xa_lock
LOCK2 &group->group_lock
TYPE_LOCK (struct vfio_group)->group_lock

drivers/iommu/iommufd/vfio_compat.c iommufd_vfio_compat_ioas_get_id() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 0 ictx 4096-ptr_max
PARAM_VALUE 0 ictx->vfio_ioas 4096-ptr_max
PARAM_VALUE 0 ictx->vfio_ioas->obj.users.refs.counter (-1073741824),0-s32max
PARAM_VALUE 0 ictx->vfio_ioas->obj.wait_cnt.refs.counter (-1073741824),0-s32max
PARAM_VALUE 1 obj 4096-ptr_max
PARAM_VALUE 1 obj->users.refs.counter (-1073741824),0-s32max
PARAM_VALUE 1 obj->wait_cnt.refs.counter (-1073741824),0-s32max
DATA_SOURCE 0 ictx $0
NOCHECK_CALL
LOCK2 &vdev->dev_set->lock
LOCK2 &vdev->group->group_lock
TYPE_LOCK (struct vfio_device_set)->lock
TYPE_LOCK (struct vfio_group)->group_lock

drivers/iommu/iommufd/vfio_compat.c iommufd_vfio_ioas() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 0 ictx 4096-ptr_max
PARAM_VALUE 0 ictx->vfio_ioas 4096-ptr_max
PARAM_VALUE 0 ictx->vfio_ioas->obj.users.refs.counter (-1073741824),0-s32max
PARAM_VALUE 0 ictx->vfio_ioas->obj.wait_cnt.refs.counter (-1073741824),0-s32max
PARAM_VALUE 1 obj 4096-ptr_max
PARAM_VALUE 1 obj->users.refs.counter (-1073741824),0-s32max
PARAM_VALUE 1 obj->wait_cnt.refs.counter (-1073741824),0-s32max
NOCHECK_CALL

drivers/iommu/iommufd/vfio_compat.c iommufd_vfio_ioas() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 0 ictx 4096-ptr_max
PARAM_VALUE 0 ictx->vfio_ioas 4096-ptr_max
PARAM_VALUE 1 obj 4096-ptr_max
NOCHECK_CALL

drivers/iommu/iommufd/vfio_compat.c iommufd_vfio_iommu_get_info() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 0 ictx 4096-ptr_max
PARAM_VALUE 0 ictx->vfio_ioas 4096-ptr_max
PARAM_VALUE 0 ictx->vfio_ioas->obj.users.refs.counter (-1073741824),0-s32max
PARAM_VALUE 0 ictx->vfio_ioas->obj.wait_cnt.refs.counter (-1073741824),0-s32max
PARAM_VALUE 1 obj 4096-ptr_max
PARAM_VALUE 1 obj->users.refs.counter (-1073741824),0-s32max
PARAM_VALUE 1 obj->wait_cnt.refs.counter (-1073741824),0-s32max
BUF_SIZE 0 ictx s32min-(-2),1-s32max
BUF_SIZE 0 ictx s32min-(-2),1-s32max
DATA_SOURCE 0 ictx $0
NOCHECK_CALL

drivers/iommu/iommufd/vfio_compat.c iommufd_vfio_map_dma() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 0 ictx 4096-ptr_max
PARAM_VALUE 0 ictx->vfio_ioas 4096-ptr_max
PARAM_VALUE 0 ictx->vfio_ioas->obj.users.refs.counter (-1073741824),0-s32max
PARAM_VALUE 0 ictx->vfio_ioas->obj.wait_cnt.refs.counter (-1073741824),0-s32max
PARAM_VALUE 1 obj 4096-ptr_max
PARAM_VALUE 1 obj->users.refs.counter (-1073741824),0-s32max
PARAM_VALUE 1 obj->wait_cnt.refs.counter (-1073741824),0-s32max
BUF_SIZE 0 ictx s32min-(-2),1-s32max
BUF_SIZE 0 ictx s32min-(-2),1-s32max
DATA_SOURCE 0 ictx $0
NOCHECK_CALL

drivers/iommu/iommufd/vfio_compat.c iommufd_vfio_set_iommu() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 0 ictx 4096-ptr_max
PARAM_VALUE 0 ictx->vfio_ioas 4096-ptr_max
PARAM_VALUE 0 ictx->vfio_ioas->obj.users.refs.counter (-1073741824),0-s32max
PARAM_VALUE 0 ictx->vfio_ioas->obj.wait_cnt.refs.counter (-1073741824),0-s32max
PARAM_VALUE 1 obj 4096-ptr_max
PARAM_VALUE 1 obj->users.refs.counter (-1073741824),0-s32max
PARAM_VALUE 1 obj->wait_cnt.refs.counter (-1073741824),0-s32max
BUF_SIZE 0 ictx s32min-(-2),1-s32max
BUF_SIZE 0 ictx s32min-(-2),1-s32max
DATA_SOURCE 0 ictx $0
NOCHECK_CALL

drivers/iommu/iommufd/vfio_compat.c iommufd_vfio_unmap_dma() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 0 ictx 4096-ptr_max
PARAM_VALUE 0 ictx->vfio_ioas 4096-ptr_max
PARAM_VALUE 0 ictx->vfio_ioas->obj.users.refs.counter (-1073741824),0-s32max
PARAM_VALUE 0 ictx->vfio_ioas->obj.wait_cnt.refs.counter (-1073741824),0-s32max
PARAM_VALUE 1 obj 4096-ptr_max
PARAM_VALUE 1 obj->users.refs.counter (-1073741824),0-s32max
PARAM_VALUE 1 obj->wait_cnt.refs.counter (-1073741824),0-s32max
BUF_SIZE 0 ictx s32min-(-2),1-s32max
BUF_SIZE 0 ictx s32min-(-2),1-s32max
DATA_SOURCE 0 ictx $0
NOCHECK_CALL

drivers/iommu/iommufd/eventq.c iommufd_veventq_alloc() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
NOCHECK_CALL

drivers/iommu/iommufd/hw_pagetable.c iommufd_hwpt_alloc() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
NOCHECK_CALL
HALF_LOCKED2 &ioas->mutex

drivers/iommu/iommufd/hw_pagetable.c iommufd_hwpt_alloc() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
PARAM_VALUE 1 obj->users.refs.counter (-1073741824),0-s32max
PARAM_VALUE 1 obj->wait_cnt.refs.counter (-1073741824),0-s32max
DATA_SOURCE 1 obj r iommufd_get_object
NOCHECK_CALL

drivers/iommu/iommufd/hw_pagetable.c iommufd_hwpt_alloc() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
NOCHECK_CALL

drivers/iommu/iommufd/hw_pagetable.c iommufd_hwpt_get_dirty_bitmap() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
NOCHECK_CALL

drivers/iommu/iommufd/hw_pagetable.c iommufd_hwpt_invalidate() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
PARAM_VALUE 1 obj->users.refs.counter (-1073741824),0-s32max
PARAM_VALUE 1 obj->wait_cnt.refs.counter (-1073741824),0-s32max
DATA_SOURCE 1 obj r iommufd_get_object
NOCHECK_CALL

drivers/iommu/iommufd/hw_pagetable.c iommufd_hwpt_set_dirty_tracking() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
NOCHECK_CALL

drivers/iommu/iommufd/ioas.c iommufd_ioas_allow_iovas() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
NOCHECK_CALL

drivers/iommu/iommufd/ioas.c iommufd_ioas_copy() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
NOCHECK_CALL

drivers/iommu/iommufd/ioas.c iommufd_ioas_copy() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
NOCHECK_CALL

drivers/iommu/iommufd/ioas.c iommufd_ioas_iova_ranges() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
NOCHECK_CALL

drivers/iommu/iommufd/ioas.c iommufd_ioas_map() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
NOCHECK_CALL

drivers/iommu/iommufd/ioas.c iommufd_ioas_map_file() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
NOCHECK_CALL

drivers/iommu/iommufd/ioas.c iommufd_ioas_noiommu_get_pa() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
CAPABLE 0 17
NOCHECK_CALL

drivers/iommu/iommufd/ioas.c iommufd_ioas_option() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
NOCHECK_CALL

drivers/iommu/iommufd/ioas.c iommufd_ioas_unmap() -> iommufd_put_object()

Type Parameter Key Value
PARAM_VALUE 1 obj 4096-ptr_max
NOCHECK_CALL