Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

mm/ksm.c cmp_and_merge_page() -> folio_stable_node()

Type Parameter Key Value
DATA_SOURCE 0 folio r _compound_head
LOCK2 global &ksm_thread_mutex

mm/ksm.c cmp_and_merge_page() -> folio_stable_node()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
CAPPED_DATA 0 folio 1
DATA_SOURCE 0 folio r stable_tree_search
LOCK2 global &ksm_thread_mutex

mm/ksm.c collect_procs_ksm() -> folio_stable_node()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
PARAM_VALUE 0 folio->mapping 1-u64max
DATA_SOURCE 0 folio $0
RX_PATH
TASK_NOT_RUNNING
UNITS 0 folio unit_page
LOCK2 global &mf_mutex
HALF_LOCKED2 &attr->mutex
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &pool->lock

mm/ksm.c folio_migrate_ksm() -> folio_stable_node()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
CAPPED_DATA 0 folio 1
CAPPED_DATA 0 folio->mapping 1
DATA_SOURCE 0 folio $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &ai->migrate_lock
HALF_LOCKED2 &ctx->completion_lock
HALF_LOCKED2 &ctx->ring_lock
HALF_LOCKED2 flags

mm/ksm.c ksm_might_need_to_copy() -> folio_stable_node()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
DATA_SOURCE 0 folio $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &mm->mmap_lock

mm/ksm.c rmap_walk_ksm() -> folio_stable_node()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
BUF_SIZE 0 folio (-1)-s32max
BUF_SIZE 0 folio (-1)-s32max
DATA_SOURCE 0 folio $0
NOSPEC 0 folio->mapping->writeback_index
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 folio->mapping->writeback_index 0-524287[c]
NO_OVERFLOW_SIMPLE 0 folio->index
NO_OVERFLOW_SIMPLE 0 folio->mapping->host->i_bytes
NO_OVERFLOW_SIMPLE 0 folio->mapping->host->i_size
UNITS 0 folio unit_page
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 0 &folio->private->lock

mm/ksm.c stable_tree_search() -> folio_stable_node()

Type Parameter Key Value
DATA_SOURCE 0 folio r _compound_head
LOCK2 global &ksm_thread_mutex