Documented in 1 files:
Defined in 1 files as a function:
Referenced in 10 files:
- drivers/infiniband/core/device.c, line 1021
- drivers/iommu/iommu.c
- drivers/iommu/iommufd/device.c
- drivers/iommu/iommufd/io_pagetable.c, line 1288
- drivers/iommu/iommufd/viommu.c, line 244
- drivers/net/ethernet/intel/ice/ice_adapter.c, line 118
- fs/btrfs/delayed-ref.c
- fs/btrfs/inode.c, line 6883
- fs/btrfs/qgroup.c, line 2182
- lib/test_xarray.c
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 |