Documented in 1 files:

Defined in 1 files as a function:

Referenced in 10 files:

Smatch caller information:

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

Type Parameter Key Value
PARAM_VALUE 0 xa 4096-ptr_max
NOCHECK_CALL
USER_DATA 1 index 0-u64max[u]
LOCK2 &idev->igroup->lock
TYPE_LOCK (struct iommufd_group)->lock

drivers/iommu/iommufd/io_pagetable.c iopt_table_add_domain() -> xa_release()

Type Parameter Key Value
PARAM_VALUE 0 xa 4096-ptr_max
NOCHECK_CALL
LOCK2 &ioas->mutex
LOCK2 &iopt->domains_rwsem
LOCK2 &iopt->iova_rwsem
TYPE_LOCK (struct io_pagetable)->domains_rwsem
TYPE_LOCK (struct io_pagetable)->iova_rwsem
TYPE_LOCK (struct iommufd_ioas)->mutex

drivers/iommu/iommufd/device.c iommufd_hw_pagetable_attach() -> xa_release()

Type Parameter Key Value
PARAM_VALUE 0 xa 7,4096-ptr_max
NOCHECK_CALL
LOCK2 &igroup->lock
HALF_LOCKED2 &ioas->mutex
HALF_LOCKED2 &vdev->dev_set->lock
TYPE_LOCK (struct iommufd_group)->lock

drivers/iommu/iommufd/device.c iommufd_hw_pagetable_attach() -> xa_release()

Type Parameter Key Value
PARAM_VALUE 0 xa 4096-ptr_max
DATA_SOURCE 1 index $2
NOCHECK_CALL
USER_DATA 1 index 0-u32max
LOCK2 &igroup->lock
HALF_LOCKED2 &ioas->mutex
HALF_LOCKED2 &vdev->dev_set->lock
TYPE_LOCK (struct iommufd_group)->lock

drivers/net/ethernet/intel/ice/ice_adapter.c ice_adapter_get() -> xa_release()

Type Parameter Key Value
PARAM_VALUE 0 xa 6352305162180497408
PARAM_VALUE 1 index 0,9223372036854798236
DATA_SOURCE 1 index r ice_adapter_xa_index
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 1 index 0[c]
LOCK2 _T->lock
HALF_LOCKED2 &pdev->dev.mutex

drivers/infiniband/core/device.c add_one_compat_dev() -> xa_release()

Type Parameter Key Value
PARAM_VALUE 0 xa 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &device->compat_devs_mutex
LOCK2 global &devices_rwsem
LOCK2 global &rdma_nets_rwsem
HALF_LOCKED2 global &pernet_ops_rwsem
TYPE_LOCK (struct ib_device)->compat_devs_mutex

fs/btrfs/qgroup.c btrfs_qgroup_trace_extent() -> xa_release()

Type Parameter Key Value
PARAM_VALUE 0 xa 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &eb->lock
HALF_LOCKED2 &fs_info->cleaner_mutex
HALF_LOCKED2 &root_eb->lock

drivers/iommu/iommu.c iommu_attach_device_pasid() -> xa_release()

Type Parameter Key Value
PARAM_VALUE 0 xa 4096-ptr_max
PARAM_VALUE 1 index 1-u32max
DATA_SOURCE 1 index $2
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 1 index 1-u32max
LOCK2 &group->mutex
HALF_LOCKED2 &igroup->lock
HALF_LOCKED2 global &iommu_sva_lock
TYPE_LOCK (struct iommu_group)->mutex

drivers/iommu/iommu.c iommu_attach_group_handle() -> xa_release()

Type Parameter Key Value
PARAM_VALUE 0 xa 4096-ptr_max
PARAM_VALUE 1 index 0
NOCHECK_CALL
LOCK2 &group->mutex
LOCK2 &igroup->lock
HALF_LOCKED2 &ioas->mutex
HALF_LOCKED2 &vdev->dev_set->lock
TYPE_LOCK (struct iommu_group)->mutex
TYPE_LOCK (struct iommufd_group)->lock

drivers/iommu/iommu.c iommu_replace_device_pasid() -> xa_release()

Type Parameter Key Value
PARAM_VALUE 0 xa 4096-ptr_max
PARAM_VALUE 1 index 1-u32max
DATA_SOURCE 1 index $2
NOCHECK_CALL
USER_DATA 1 index 1-u32max
LOCK2 &group->mutex
LOCK2 &igroup->lock
HALF_LOCKED2 &ioas->mutex
HALF_LOCKED2 &vdev->dev_set->lock
TYPE_LOCK (struct iommu_group)->mutex
TYPE_LOCK (struct iommufd_group)->lock

drivers/iommu/iommu.c iommu_replace_group_handle() -> xa_release()

Type Parameter Key Value
PARAM_VALUE 0 xa 4096-ptr_max
PARAM_VALUE 1 index 0
NOCHECK_CALL
LOCK2 &group->mutex
LOCK2 &igroup->lock
HALF_LOCKED2 &ioas->mutex
HALF_LOCKED2 &vdev->dev_set->lock
TYPE_LOCK (struct iommu_group)->mutex
TYPE_LOCK (struct iommufd_group)->lock

lib/test_xarray.c check_reserve() -> xa_release()

Type Parameter Key Value
PARAM_VALUE 0 xa 5024146686711472128,6789482655478472704
PARAM_VALUE 0 xa->xa_head 0
PARAM_VALUE 0 xa->xa_lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 index 12345678
DATA_SOURCE 0 xa $0
NOCHECK_CALL

lib/test_xarray.c check_reserve() -> xa_release()

Type Parameter Key Value
PARAM_VALUE 0 xa 5024146686711472128,6789482655478472704
PARAM_VALUE 0 xa->xa_head 0
PARAM_VALUE 0 xa->xa_lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 index 12345678
DATA_SOURCE 0 xa $0
NOCHECK_CALL

lib/test_xarray.c check_reserve() -> xa_release()

Type Parameter Key Value
PARAM_VALUE 0 xa 5024146686711472128,6789482655478472704
PARAM_VALUE 0 xa->xa_head 0
PARAM_VALUE 0 xa->xa_lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 index 12345678
DATA_SOURCE 0 xa $0
NOCHECK_CALL

lib/test_xarray.c check_reserve() -> xa_release()

Type Parameter Key Value
PARAM_VALUE 0 xa 5024146686711472128,6789482655478472704
PARAM_VALUE 0 xa->xa_flags 4-u32max
PARAM_VALUE 0 xa->xa_head 0
PARAM_VALUE 0 xa->xa_lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 index 6
DATA_SOURCE 0 xa $0
NOCHECK_CALL

fs/btrfs/delayed-ref.c add_delayed_ref() -> xa_release()

Type Parameter Key Value
PARAM_VALUE 0 xa 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &trans->fs_info->chunk_mutex
HALF_LOCKED2 &trans->fs_info->commit_root_sem
HALF_LOCKED2 &trans->fs_info->fs_devices->device_list_mutex
HALF_LOCKED2 &trans->fs_info->fs_roots_radix_lock
HALF_LOCKED2 &trans->fs_info->qgroup_ioctl_lock
HALF_LOCKED2 &trans->fs_info->qgroup_lock
HALF_LOCKED2 &trans->fs_info->unused_bg_unpin_mutex
HALF_LOCKED2 &trans->transaction->cache_write_mutex
HALF_LOCKED2 &trans->transaction->delayed_refs.lock

fs/btrfs/delayed-ref.c add_delayed_ref() -> xa_release()

Type Parameter Key Value
PARAM_VALUE 0 xa 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &delayed_refs->lock
HALF_LOCKED2 &trans->fs_info->chunk_mutex
HALF_LOCKED2 &trans->fs_info->commit_root_sem
HALF_LOCKED2 &trans->fs_info->fs_devices->device_list_mutex
HALF_LOCKED2 &trans->fs_info->fs_roots_radix_lock
HALF_LOCKED2 &trans->fs_info->qgroup_ioctl_lock
HALF_LOCKED2 &trans->fs_info->qgroup_lock
HALF_LOCKED2 &trans->fs_info->unused_bg_unpin_mutex
HALF_LOCKED2 &trans->transaction->cache_write_mutex
HALF_LOCKED2 &trans->transaction->delayed_refs.lock
TYPE_LOCK (struct btrfs_delayed_ref_root)->lock

fs/btrfs/delayed-ref.c add_delayed_ref_head() -> xa_release()

Type Parameter Key Value
PARAM_VALUE 0 xa 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &delayed_refs->lock
HALF_LOCKED2 &trans->fs_info->chunk_mutex
HALF_LOCKED2 &trans->fs_info->commit_root_sem
HALF_LOCKED2 &trans->fs_info->fs_devices->device_list_mutex
HALF_LOCKED2 &trans->fs_info->fs_roots_radix_lock
HALF_LOCKED2 &trans->fs_info->qgroup_ioctl_lock
HALF_LOCKED2 &trans->fs_info->qgroup_lock
HALF_LOCKED2 &trans->fs_info->unused_bg_unpin_mutex
HALF_LOCKED2 &trans->transaction->cache_write_mutex
HALF_LOCKED2 &trans->transaction->delayed_refs.lock
TYPE_LOCK (struct btrfs_delayed_ref_root)->lock

fs/btrfs/delayed-ref.c btrfs_add_delayed_extent_op() -> xa_release()

Type Parameter Key Value
PARAM_VALUE 0 xa 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &delayed_refs->lock
HALF_LOCKED2 &fs_info->cleaner_mutex
HALF_LOCKED2 &trans->fs_info->commit_root_sem
HALF_LOCKED2 &trans->fs_info->fs_devices->device_list_mutex
HALF_LOCKED2 &trans->fs_info->fs_roots_radix_lock
HALF_LOCKED2 &trans->fs_info->qgroup_ioctl_lock
HALF_LOCKED2 &trans->fs_info->qgroup_lock
HALF_LOCKED2 &trans->fs_info->unused_bg_unpin_mutex
HALF_LOCKED2 &trans->transaction->delayed_refs.lock
TYPE_LOCK (struct btrfs_delayed_ref_root)->lock