Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

mm/hugetlb.c set_hugetlb_cgroup() -> __set_hugetlb_cgroup()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
PARAM_VALUE 0 folio->_hugetlb_subpool 0
PARAM_VALUE 1 h_cg 0
PARAM_VALUE 2 rsvd 0
DATA_SOURCE 0 folio $0
DATA_SOURCE 1 h_cg $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dst->resize_lock
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &src->resize_lock

mm/hugetlb.c set_hugetlb_cgroup_rsvd() -> __set_hugetlb_cgroup()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
PARAM_VALUE 0 folio->_hugetlb_cgroup 0
PARAM_VALUE 0 folio->_hugetlb_subpool 0
PARAM_VALUE 1 h_cg 0
PARAM_VALUE 2 rsvd 1
DATA_SOURCE 0 folio $0
DATA_SOURCE 1 h_cg $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dst->resize_lock
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &src->resize_lock

mm/hugetlb_cgroup.c __hugetlb_cgroup_commit_charge() -> __set_hugetlb_cgroup()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
PARAM_VALUE 0 folio->lru.next->prev 4096-ptr_max
PARAM_VALUE 0 folio->lru.prev->next 4096-ptr_max
PARAM_VALUE 0 folio->page._refcount.counter 1
PARAM_VALUE 1 h_cg 4096-ptr_max
DATA_SOURCE 0 folio $3
DATA_SOURCE 1 h_cg $2
DATA_SOURCE 2 rsvd $4
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &hugetlb_lock
LOCK2 irq
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &oldmm->mmap_lock
HALF_LOCKED2 &state.ctx->map_changing_lock

mm/hugetlb_cgroup.c __hugetlb_cgroup_uncharge_folio() -> __set_hugetlb_cgroup()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
PARAM_VALUE 1 h_cg 0
DATA_SOURCE 0 folio $2
DATA_SOURCE 2 rsvd $3
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &hugetlb_lock
HALF_LOCKED2 flags

mm/hugetlb_cgroup.c set_hugetlb_cgroup() -> __set_hugetlb_cgroup()

Type Parameter Key Value
PARAM_VALUE 0 folio 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 2 rsvd 0
DATA_SOURCE 0 folio $0
DATA_SOURCE 1 h_cg $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &hugetlb_lock
LOCK2 irq
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 global &cgroup_mutex

mm/hugetlb_cgroup.c set_hugetlb_cgroup_rsvd() -> __set_hugetlb_cgroup()

Type Parameter Key Value
PARAM_VALUE 0 folio 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 2 rsvd 1
DATA_SOURCE 0 folio $0
DATA_SOURCE 1 h_cg $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &hugetlb_lock
LOCK2 irq
HALF_LOCKED2 &dev->mutex
HALF_LOCKED2 global &mf_mutex
HALF_LOCKED2 global &pcp_batch_high_lock