Defined in 2 files as a function:

Referenced in 2 files:

Smatch caller information:

mm/hugetlb.c remove_hugetlb_folio() -> hugetlb_cgroup_from_folio()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
CAPPED_DATA 0 folio 1
DATA_SOURCE 0 folio $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 0 folio unit_page
LOCK2 global &hugetlb_lock
HALF_LOCKED2 &h->resize_lock
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 flags
HALF_LOCKED2 global &pcp_batch_high_lock
HALF_LOCKED2 irq

mm/hugetlb_cgroup.c hugetlb_cgroup_migrate() -> hugetlb_cgroup_from_folio()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
PARAM_VALUE 0 folio->_hugetlb_subpool 0
PARAM_VALUE 0 folio->lru.next 4096-ptr_max
PARAM_VALUE 0 folio->lru.prev 4096-ptr_max
PARAM_VALUE 0 folio->mapping->i_mmap_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 folio->mapping->i_mmap_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 folio->mapping->i_private_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 folio->memcg_data 0
PARAM_VALUE 0 folio->page.memcg_data 0
PARAM_VALUE 0 folio->pgmap->ref.data 0,4096-ptr_max
PARAM_VALUE 0 *folio->_mm_id 0-4294967295
CAPPED_DATA 0 folio 1
DATA_SOURCE 0 folio $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &hugetlb_lock
LOCK2 irq
HALF_LOCKED2 &ctx->walk_control_lock
HALF_LOCKED2 &dev->mutex
HALF_LOCKED2 global &mf_mutex
HALF_LOCKED2 global &pcp_batch_high_lock

mm/hugetlb_cgroup.c hugetlb_cgroup_move_parent() -> hugetlb_cgroup_from_folio()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
DATA_SOURCE 0 folio $2
PREEMPT_ADD
LOCK2 global &cgroup_mutex
LOCK2 global &hugetlb_lock
LOCK2 irq
HALF_LOCKED2 &pool->lock