Documented in 1 files:

Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

mm/swapfile.c __try_to_reclaim_swap() -> swap_cluster_lock()

Type Parameter Key Value
PARAM_VALUE 0 si 4096-ptr_max
PARAM_VALUE 0 *si->global_cluster->next 0-4294967295
PARAM_VALUE 1 offset 0-288230376151711743
CAPPED_DATA 1 offset 1
CAPPED_DATA 1 offset 1
DATA_SOURCE 0 si $0
DATA_SOURCE 1 offset r swp_offset
RX_PATH
TASK_NOT_RUNNING
UNITS 1 offset unit_page
HALF_LOCKED2 global &system_transition_mutex
HALF_LOCKED2 0 &si->global_cluster_lock

mm/swapfile.c cluster_alloc_swap_entry() -> swap_cluster_lock()

Type Parameter Key Value
PARAM_VALUE 0 si 4096-ptr_max
PARAM_VALUE 0 si->global_cluster 4096-ptr_max
PARAM_VALUE 0 si->global_cluster->next 4096-ptr_max
PARAM_VALUE 0 si->global_cluster_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 *si->global_cluster->next 0-4294967295
PARAM_VALUE 1 offset 1-512
DATA_SOURCE 0 si $0
BIT_INFO 0 si->flags 0x0,0xffffffffffffffef
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 0 &si->global_cluster_lock
HALF_LOCKED2 global &device_hotplug_lock
HALF_LOCKED2 global &system_transition_mutex
TYPE_LOCK (struct swap_info_struct)->global_cluster_lock

mm/swapfile.c swap_alloc_fast() -> swap_cluster_lock()

Type Parameter Key Value
PARAM_VALUE 0 si 4096-ptr_max
PARAM_VALUE 0 si->users.percpu_count_ptr 1-u64max
PARAM_VALUE 1 offset 1-512
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING

mm/swapfile.c swap_alloc_hibernation_slot() -> swap_cluster_lock()

Type Parameter Key Value
DATA_SOURCE 0 si r swap_type_to_info
BIT_INFO 1 offset 0x0,0x0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &device_hotplug_lock
LOCK2 global &system_transition_mutex

mm/swapfile.c swap_dup_entries_cluster() -> swap_cluster_lock()

Type Parameter Key Value
PARAM_VALUE 1 offset 0-288230376151711743
DATA_SOURCE 0 si $0
DATA_SOURCE 1 offset $1
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &oldmm->mmap_lock
HALF_LOCKED2 dst_ptl
HALF_LOCKED2 rcu_read
HALF_LOCKED2 src_ptl

mm/swapfile.c swap_entry_swapped() -> swap_cluster_lock()

Type Parameter Key Value
PARAM_VALUE 0 si 1-u64max
PARAM_VALUE 1 offset 0-288230376151711743
DATA_SOURCE 0 si $0
DATA_SOURCE 1 offset r swp_offset
RX_PATH
TASK_NOT_RUNNING
LOCK2 &mm->mmap_lock
LOCK2 &oldmm->mmap_lock
LOCK2 dst_ptl
LOCK2 rcu_read
LOCK2 src_ptl
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/swapfile.c swap_free_hibernation_slot() -> swap_cluster_lock()

Type Parameter Key Value
PARAM_VALUE 0 si 4096-ptr_max
PARAM_VALUE 1 offset 0-288230376151711743
DATA_SOURCE 0 si r __swap_entry_to_info
DATA_SOURCE 1 offset r swp_offset
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &system_transition_mutex
HALF_LOCKED2 global &device_hotplug_lock

mm/swapfile.c swap_put_entries_cluster() -> swap_cluster_lock()

Type Parameter Key Value
PARAM_VALUE 0 si 4096-ptr_max
PARAM_VALUE 1 offset 0-288230376151711743
CAPPED_DATA 1 offset 1
CAPPED_DATA 1 offset 1
DATA_SOURCE 0 si $0
DATA_SOURCE 1 offset $1
RX_PATH
TASK_NOT_RUNNING
UNITS 1 offset unit_page
HALF_LOCKED2 ptl

mm/swapfile.c swp_swapcount() -> swap_cluster_lock()

Type Parameter Key Value
PARAM_VALUE 0 si 4096-ptr_max
PARAM_VALUE 0 si->max 1-u32max
PARAM_VALUE 0 si->users.percpu_count_ptr 1-u64max
PARAM_VALUE 1 offset 0-288230376151711743
DATA_SOURCE 0 si r get_swap_device
RX_PATH
TASK_NOT_RUNNING
LOCK2 ptl
HALF_LOCKED2 &mm->mmap_lock

mm/swapfile.c wait_for_allocation() -> swap_cluster_lock()

Type Parameter Key Value
PARAM_VALUE 0 si 4096-ptr_max
PARAM_VALUE 0 si->avail_list.node_list.next->prev 4096-ptr_max
PARAM_VALUE 0 si->avail_list.node_list.prev->next 4096-ptr_max
PARAM_VALUE 0 si->avail_list.prio_list.next->next 4096-ptr_max
PARAM_VALUE 0 si->avail_list.prio_list.prev->next 4096-ptr_max
PARAM_VALUE 0 si->list.node_list.next 4096-ptr_max
PARAM_VALUE 0 si->list.node_list.next->next 4096-ptr_max
PARAM_VALUE 0 si->list.node_list.next->prev 4096-ptr_max
PARAM_VALUE 0 si->list.node_list.prev 4096-ptr_max
PARAM_VALUE 0 si->list.node_list.prev->next 4096-ptr_max
PARAM_VALUE 0 si->list.node_list.prev->prev 4096-ptr_max
PARAM_VALUE 0 si->list.prio_list.next 4096-ptr_max
PARAM_VALUE 0 si->list.prio_list.next->next 4096-ptr_max
PARAM_VALUE 0 si->list.prio_list.prev 4096-ptr_max
PARAM_VALUE 0 si->list.prio_list.prev->next 4096-ptr_max
PARAM_VALUE 0 si->list.prio_list.prev->prev 4096-ptr_max
PARAM_VALUE 0 si->lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 si->swap_file 4096-ptr_max
PARAM_VALUE 1 offset 0,512-4294967294
CAPPED_DATA 0 si->pages 1
CAPPED_DATA 0 si->swap_file->f_mapping 1
CAPPED_DATA 1 offset 1
CAPPED_DATA 1 offset 1
DATA_SOURCE 0 si $0
CAPABLE 0 21
BIT_INFO 0 si->flags 0x0,0xfffffffffffffffd

mm/swap_state.c swap_cache_del_folio() -> swap_cluster_lock()

Type Parameter Key Value
PARAM_VALUE 0 si 4096-ptr_max
PARAM_VALUE 1 offset 0-288230376151711743
BIT_INFO 1 offset 0x0,0x3ffffffffffffff
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 global &mf_mutex
HALF_LOCKED2 vmf->ptl