Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

mm/memcontrol.c drain_stock() -> memcg_uncharge()

Type Parameter Key Value
PARAM_VALUE 0 memcg 1-u64max
PARAM_VALUE 1 nr_pages 1-255
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

mm/memcontrol.c mem_cgroup_migrate() -> memcg_uncharge()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &ai->migrate_lock
HALF_LOCKED2 &ctx->completion_lock
HALF_LOCKED2 &ctx->ring_lock
HALF_LOCKED2 flags

mm/memcontrol.c memcg_uncharge_kmem() -> memcg_uncharge()

Type Parameter Key Value
PARAM_VALUE 0 memcg 4096-ptr_max
PARAM_VALUE 0 memcg->css.refcnt.percpu_count_ptr 1-u64max
PARAM_VALUE 1 nr_pages 1-1048575
CAPPED_DATA 0 memcg 1
DATA_SOURCE 0 memcg $0
DATA_SOURCE 1 nr_pages $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 1 nr_pages unit_page
HALF_LOCKED2 rcu_read

mm/memcontrol.c refill_stock() -> memcg_uncharge()

Type Parameter Key Value
PARAM_VALUE 0 memcg 1-u64max
CAPPED_DATA 0 memcg 1
CAPPED_DATA 1 nr_pages 1
DATA_SOURCE 0 memcg $0
DATA_SOURCE 1 nr_pages $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 1 nr_pages unit_page

mm/memcontrol.c uncharge_batch() -> memcg_uncharge()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read