Documented in 1 files:
Defined in 1 files as a function:
Referenced in 7 files:
- drivers/iommu/iommufd/pages.c
- drivers/target/target_core_user.c, line 523
- lib/iov_iter.c
- lib/test_xarray.c
- mm/filemap.c
- mm/khugepaged.c
- virt/kvm/kvm_main.c, line 2455
Smatch caller information:
lib/iov_iter.c iov_iter_extract_xarray_pages() -> xas_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | xas | 8851408094428491776 |
| PARAM_VALUE | 0 | xas->xa_alloc | 0 |
| PARAM_VALUE | 0 | xas->xa_lru | 0 |
| PARAM_VALUE | 0 | xas->xa_node | 0-1,3,4096-18446744073709551614 |
| PARAM_VALUE | 0 | xas->xa_pad | 0 |
| PARAM_VALUE | 0 | xas->xa_shift | 0 |
| PARAM_VALUE | 0 | xas->xa_sibs | 0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &tls_ctx->tx_lock | ||
| HALF_LOCKED2 | sk |
lib/iov_iter.c iter_xarray_populate_pages() -> xas_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | xas | 5127444035599134720 |
| PARAM_VALUE | 0 | xas->xa_alloc | 0 |
| PARAM_VALUE | 0 | xas->xa_lru | 0 |
| PARAM_VALUE | 0 | xas->xa_node | 0-1,3,4096-18446744073709551614 |
| PARAM_VALUE | 0 | xas->xa_pad | 0 |
| PARAM_VALUE | 0 | xas->xa_shift | 0 |
| PARAM_VALUE | 0 | xas->xa_sibs | 0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | rcu_read |
drivers/iommu/iommufd/pages.c batch_from_xarray() -> xas_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | xas | 5758341317865996288 |
| PARAM_VALUE | 0 | xas->xa | 4096-ptr_max |
| PARAM_VALUE | 0 | xas->xa_alloc | 0 |
| PARAM_VALUE | 0 | xas->xa_lru | 0 |
| PARAM_VALUE | 0 | xas->xa_node | 0-1,3,4096-18446744073709551614 |
| PARAM_VALUE | 0 | xas->xa_pad | 0 |
| PARAM_VALUE | 0 | xas->xa_shift | 0 |
| PARAM_VALUE | 0 | xas->xa_sibs | 0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &access->ioas_lock | ||
| HALF_LOCKED2 | &ioas->mutex | ||
| HALF_LOCKED2 | &iopt->domains_rwsem | ||
| HALF_LOCKED2 | &iopt->iova_rwsem | ||
| HALF_LOCKED2 | &pages->mutex | ||
| HALF_LOCKED2 | _T->lock |
drivers/iommu/iommufd/pages.c batch_from_xarray_clear() -> xas_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | xas | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &((&xas)->xa)->xa_lock | ||
| LOCK2 | &access->ioas_lock | ||
| LOCK2 | &iopt->iova_rwsem | ||
| LOCK2 | &pages->mutex | ||
| HALF_LOCKED2 | &staccess->lock | ||
| TYPE_LOCK | (struct io_pagetable)->iova_rwsem | ||
| TYPE_LOCK | (struct iommufd_access)->ioas_lock | ||
| TYPE_LOCK | (struct iopt_pages)->mutex |
drivers/iommu/iommufd/pages.c iopt_pages_fill_from_xarray() -> xas_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | xas | 1609698968112500736 |
| PARAM_VALUE | 0 | xas->xa | 4096-ptr_max |
| PARAM_VALUE | 0 | xas->xa_alloc | 0 |
| PARAM_VALUE | 0 | xas->xa_lru | 0 |
| PARAM_VALUE | 0 | xas->xa_node | 0-1,3,4096-18446744073709551614 |
| PARAM_VALUE | 0 | xas->xa_pad | 0 |
| PARAM_VALUE | 0 | xas->xa_shift | 0 |
| PARAM_VALUE | 0 | xas->xa_sibs | 0 |
| LOCK2 | &access->ioas_lock | ||
| LOCK2 | &iopt->iova_rwsem | ||
| LOCK2 | &pages->mutex | ||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &staccess->lock | ||
| HALF_LOCKED2 | &vgpu->cache_lock | ||
| TYPE_LOCK | (struct io_pagetable)->iova_rwsem | ||
| TYPE_LOCK | (struct iommufd_access)->ioas_lock | ||
| TYPE_LOCK | (struct iopt_pages)->mutex |
drivers/iommu/iommufd/pages.c pages_to_xarray() -> xas_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | xas | 4096-ptr_max |
| PARAM_VALUE | 0 | xas->xa_node | 0-18446744073709535237,(-1) |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | &((&xas)->xa)->xa_lock | ||
| LOCK2 | &access->ioas_lock | ||
| LOCK2 | &iopt->iova_rwsem | ||
| LOCK2 | &pages->mutex | ||
| HALF_LOCKED2 | &staccess->lock | ||
| HALF_LOCKED2 | &vgpu->cache_lock | ||
| TYPE_LOCK | (struct io_pagetable)->iova_rwsem | ||
| TYPE_LOCK | (struct iommufd_access)->ioas_lock | ||
| TYPE_LOCK | (struct iopt_pages)->mutex |
mm/filemap.c filemap_get_folios_contig() -> xas_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | xas | 2749290619216510976 |
| PARAM_VALUE | 0 | xas->xa | 4096-ptr_max |
| PARAM_VALUE | 0 | xas->xa_alloc | 0 |
| PARAM_VALUE | 0 | xas->xa_lru | 0 |
| PARAM_VALUE | 0 | xas->xa_node | 0-1,3,4096-18446744073709551614 |
| PARAM_VALUE | 0 | xas->xa_pad | 0 |
| PARAM_VALUE | 0 | xas->xa_shift | 0 |
| PARAM_VALUE | 0 | xas->xa_sibs | 0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | xas->xa_index | 0-u64max[c] |
| USER_DATA | 0 | xas->xa_offset | 0-255 |
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &inode->i_rwsem |
mm/filemap.c filemap_get_read_batch() -> xas_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | xas | 2830056018175324160 |
| PARAM_VALUE | 0 | xas->xa | 4096-ptr_max |
| PARAM_VALUE | 0 | xas->xa_alloc | 0 |
| PARAM_VALUE | 0 | xas->xa_lru | 0 |
| PARAM_VALUE | 0 | xas->xa_node | 0-1,3,4096-18446744073709551614 |
| PARAM_VALUE | 0 | xas->xa_pad | 0 |
| PARAM_VALUE | 0 | xas->xa_shift | 0 |
| PARAM_VALUE | 0 | xas->xa_sibs | 0 |
| NOSPEC | 0 | xas->xa_index | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | xas->xa_index | 0-3842143[c] |
| USER_DATA | 0 | xas->xa_offset | 0-255 |
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &inode->i_rwsem |
mm/filemap.c page_cache_next_miss() -> xas_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | xas | 7636142157974593536 |
| PARAM_VALUE | 0 | xas->xa | 4096-ptr_max |
| PARAM_VALUE | 0 | xas->xa_alloc | 0 |
| PARAM_VALUE | 0 | xas->xa_lru | 0 |
| PARAM_VALUE | 0 | xas->xa_node | 0-1,3,4096-18446744073709551614 |
| PARAM_VALUE | 0 | xas->xa_pad | 0 |
| PARAM_VALUE | 0 | xas->xa_shift | 0 |
| PARAM_VALUE | 0 | xas->xa_sibs | 0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | xas->xa_index | 1-4503599627370496[c] |
| USER_DATA | 0 | xas->xa_offset | 0-255 |
| LOCK2 | rcu_read |
drivers/target/target_core_user.c tcmu_get_empty_block() -> xas_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | xas | 6707430232214507520 |
| PARAM_VALUE | 0 | xas->xa | 4096-ptr_max |
| PARAM_VALUE | 0 | xas->xa_alloc | 0 |
| PARAM_VALUE | 0 | xas->xa_lru | 0 |
| PARAM_VALUE | 0 | xas->xa_node | 0-1,3,4096-18446744073709551614 |
| PARAM_VALUE | 0 | xas->xa_pad | 0 |
| PARAM_VALUE | 0 | xas->xa_shift | 0 |
| PARAM_VALUE | 0 | xas->xa_sibs | 0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &udev->cmdr_lock | ||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct tcmu_dev)->cmdr_lock |
drivers/target/target_core_user.c tcmu_get_empty_block() -> xas_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | xas | 6707430232214507520 |
| PARAM_VALUE | 0 | xas->xa | 4096-ptr_max |
| PARAM_VALUE | 0 | xas->xa_alloc | 0 |
| PARAM_VALUE | 0 | xas->xa_lru | 0 |
| PARAM_VALUE | 0 | xas->xa_node | 0-1,4096-18446744073709551614 |
| PARAM_VALUE | 0 | xas->xa_pad | 0 |
| PARAM_VALUE | 0 | xas->xa_shift | 0 |
| PARAM_VALUE | 0 | xas->xa_sibs | 0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &udev->cmdr_lock | ||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct tcmu_dev)->cmdr_lock |
lib/test_xarray.c check_create_range_4() -> xas_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | xas | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | &((&xas)->xa)->xa_lock |
lib/test_xarray.c check_move() -> xas_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | xas | 8833985667634339840 |
| PARAM_VALUE | 0 | xas->xa | 5024146686711472128 |
| PARAM_VALUE | 0 | xas->xa_alloc | 0 |
| PARAM_VALUE | 0 | xas->xa_lru | 0 |
| PARAM_VALUE | 0 | xas->xa_node | 0-1,4096-18446744073709551614 |
| PARAM_VALUE | 0 | xas->xa_pad | 0 |
| PARAM_VALUE | 0 | xas->xa_shift | 0 |
| PARAM_VALUE | 0 | xas->xa_sibs | 0 |
| LOCK2 | rcu_read |
lib/test_xarray.c check_move() -> xas_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | xas | 8833985667634339840 |
| PARAM_VALUE | 0 | xas->xa | 5024146686711472128 |
| PARAM_VALUE | 0 | xas->xa_alloc | 0 |
| PARAM_VALUE | 0 | xas->xa_lru | 0 |
| PARAM_VALUE | 0 | xas->xa_node | 0-1,4096-18446744073709551614 |
| PARAM_VALUE | 0 | xas->xa_pad | 0 |
| PARAM_VALUE | 0 | xas->xa_shift | 0 |
| PARAM_VALUE | 0 | xas->xa_sibs | 0 |
| LOCK2 | rcu_read |
lib/test_xarray.c check_move_small() -> xas_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | xas | 874496022831509504 |
| PARAM_VALUE | 0 | xas->xa | 5024146686711472128 |
| PARAM_VALUE | 0 | xas->xa_alloc | 0 |
| PARAM_VALUE | 0 | xas->xa_lru | 0 |
| PARAM_VALUE | 0 | xas->xa_node | 0-1,3,4096-18446744073709551614 |
| PARAM_VALUE | 0 | xas->xa_pad | 0 |
| PARAM_VALUE | 0 | xas->xa_shift | 0 |
| PARAM_VALUE | 0 | xas->xa_sibs | 0 |
| LOCK2 | rcu_read |
lib/test_xarray.c check_move_small() -> xas_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | xas | 874496022831509504 |
| PARAM_VALUE | 0 | xas->xa | 5024146686711472128 |
| PARAM_VALUE | 0 | xas->xa_alloc | 0 |
| PARAM_VALUE | 0 | xas->xa_lru | 0 |
| PARAM_VALUE | 0 | xas->xa_node | 0-1,3,4096-18446744073709551614 |
| PARAM_VALUE | 0 | xas->xa_pad | 0 |
| PARAM_VALUE | 0 | xas->xa_shift | 0 |
| PARAM_VALUE | 0 | xas->xa_sibs | 0 |
| NOCHECK_CALL | |||
| LOCK2 | rcu_read |
lib/test_xarray.c check_move_small() -> xas_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | xas | 874496022831509504 |
| PARAM_VALUE | 0 | xas->xa | 5024146686711472128 |
| PARAM_VALUE | 0 | xas->xa_alloc | 0 |
| PARAM_VALUE | 0 | xas->xa_index | u64max |
| PARAM_VALUE | 0 | xas->xa_lru | 0 |
| PARAM_VALUE | 0 | xas->xa_node | 3 |
| PARAM_VALUE | 0 | xas->xa_pad | 0 |
| PARAM_VALUE | 0 | xas->xa_shift | 0 |
| PARAM_VALUE | 0 | xas->xa_sibs | 0 |
| LOCK2 | rcu_read |
lib/test_xarray.c check_move_small() -> xas_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | xas | 874496022831509504 |
| PARAM_VALUE | 0 | xas->xa | 5024146686711472128 |
| PARAM_VALUE | 0 | xas->xa_alloc | 0 |
| PARAM_VALUE | 0 | xas->xa_lru | 0 |
| PARAM_VALUE | 0 | xas->xa_node | 0-1,3,4096-18446744073709551614 |
| PARAM_VALUE | 0 | xas->xa_pad | 0 |
| PARAM_VALUE | 0 | xas->xa_shift | 0 |
| PARAM_VALUE | 0 | xas->xa_sibs | 0 |
| LOCK2 | rcu_read |
lib/test_xarray.c check_move_tiny() -> xas_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | xas | 2772266472234622976 |
| PARAM_VALUE | 0 | xas->xa | 5024146686711472128 |
| PARAM_VALUE | 0 | xas->xa_alloc | 0 |
| PARAM_VALUE | 0 | xas->xa_index | 0 |
| PARAM_VALUE | 0 | xas->xa_lru | 0 |
| PARAM_VALUE | 0 | xas->xa_node | 3 |
| PARAM_VALUE | 0 | xas->xa_offset | 0 |
| PARAM_VALUE | 0 | xas->xa_pad | 0 |
| PARAM_VALUE | 0 | xas->xa_shift | 0 |
| PARAM_VALUE | 0 | xas->xa_sibs | 0 |
| LOCK2 | rcu_read |
lib/test_xarray.c check_move_tiny() -> xas_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | xas | 2772266472234622976 |
| PARAM_VALUE | 0 | xas->xa | 5024146686711472128 |
| PARAM_VALUE | 0 | xas->xa_alloc | 0 |
| PARAM_VALUE | 0 | xas->xa_lru | 0 |
| PARAM_VALUE | 0 | xas->xa_node | 0-1,3,4096-18446744073709551614 |
| PARAM_VALUE | 0 | xas->xa_pad | 0 |
| PARAM_VALUE | 0 | xas->xa_shift | 0 |
| PARAM_VALUE | 0 | xas->xa_sibs | 0 |
| LOCK2 | rcu_read |
lib/test_xarray.c check_move_tiny() -> xas_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | xas | 2772266472234622976 |
| PARAM_VALUE | 0 | xas->xa | 5024146686711472128 |
| PARAM_VALUE | 0 | xas->xa_alloc | 0 |
| PARAM_VALUE | 0 | xas->xa_index | 0 |
| PARAM_VALUE | 0 | xas->xa_lru | 0 |
| PARAM_VALUE | 0 | xas->xa_node | 3 |
| PARAM_VALUE | 0 | xas->xa_pad | 0 |
| PARAM_VALUE | 0 | xas->xa_shift | 0 |
| PARAM_VALUE | 0 | xas->xa_sibs | 0 |
| LOCK2 | rcu_read |
lib/test_xarray.c check_move_tiny() -> xas_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | xas | 2772266472234622976 |
| PARAM_VALUE | 0 | xas->xa | 5024146686711472128 |
| PARAM_VALUE | 0 | xas->xa_alloc | 0 |
| PARAM_VALUE | 0 | xas->xa_lru | 0 |
| PARAM_VALUE | 0 | xas->xa_node | 0-1,3,4096-18446744073709551614 |
| PARAM_VALUE | 0 | xas->xa_pad | 0 |
| PARAM_VALUE | 0 | xas->xa_shift | 0 |
| PARAM_VALUE | 0 | xas->xa_sibs | 0 |
| LOCK2 | rcu_read |
lib/test_xarray.c check_workingset() -> xas_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | xas | 3557312703736500224 |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | &((&xas)->xa)->xa_lock |
lib/test_xarray.c check_workingset() -> xas_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | xas | 3557312703736500224 |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | &((&xas)->xa)->xa_lock |
lib/test_xarray.c xa_store_many_order() -> xas_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | xas | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | &((&xas)->xa)->xa_lock |
arch/x86/kvm/../../../virt/kvm/kvm_main.c kvm_range_has_memory_attributes() -> xas_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | xas | 9112499204738035712 |
| PARAM_VALUE | 0 | xas->xa | 4096-ptr_max |
| PARAM_VALUE | 0 | xas->xa_alloc | 0 |
| PARAM_VALUE | 0 | xas->xa_lru | 0 |
| PARAM_VALUE | 0 | xas->xa_node | 0-1,3,4096-18446744073709551614 |
| PARAM_VALUE | 0 | xas->xa_pad | 0 |
| PARAM_VALUE | 0 | xas->xa_shift | 0 |
| PARAM_VALUE | 0 | xas->xa_sibs | 0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | xas->xa_index | 0-524287[c] |
| USER_DATA | 0 | xas->xa_offset | 0-255 |
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &file->f_mapping->invalidate_lock | ||
| HALF_LOCKED2 | &kvm->slots_lock |
mm/khugepaged.c collapse_file() -> xas_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | xas | 4184487716943413248 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &((&xas)->xa)->xa_lock | ||
| LOCK2 | &mapping->i_mmap_rwsem | ||
| LOCK2 | irq | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| TYPE_LOCK | (struct address_space)->i_mmap_rwsem |
mm/khugepaged.c collapse_file() -> xas_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | xas | 4184487716943413248 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &((&xas)->xa)->xa_lock | ||
| LOCK2 | irq | ||
| HALF_LOCKED2 | &mm->mmap_lock |