Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

mm/kmemleak.c __kmemleak_scan() -> color_white()

Type Parameter Key Value
PARAM_VALUE 0 object 4096-ptr_max
PREEMPT_ADD <- disables preempt
LOCK2 global &scan_mutex
LOCK2 irq
LOCK2 rcu_read
LOCK2 0 &object->lock
TYPE_LOCK (struct kmemleak_object)->lock

mm/kmemleak.c __kmemleak_scan() -> color_white()

Type Parameter Key Value
PARAM_VALUE 0 object 4096-ptr_max
LOCK2 global &scan_mutex
LOCK2 rcu_read

mm/kmemleak.c __kmemleak_scan() -> color_white()

Type Parameter Key Value
PARAM_VALUE 0 object 4096-ptr_max
PARAM_VALUE 0 object->count s32min-(-2),0-2147483646
PARAM_VALUE 0 object->min_count (-2147483647)-s32max
CAPPED_DATA 0 object->count 1
CAPPED_DATA 0 object->min_count 1
PARAM_COMPARE 0 object->count < $0->min_count
PREEMPT_ADD <- disables preempt
LOCK2 global &scan_mutex
LOCK2 irq
LOCK2 rcu_read
LOCK2 0 &object->lock
TYPE_LOCK (struct kmemleak_object)->lock

mm/kmemleak.c kmemleak_scan() -> color_white()

Type Parameter Key Value
PARAM_VALUE 0 object 4096-ptr_max
LOCK2 global &scan_mutex
LOCK2 rcu_read

mm/kmemleak.c unreferenced_object() -> color_white()

Type Parameter Key Value
PARAM_VALUE 0 object 4096-ptr_max
DATA_SOURCE 0 object $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 0 &object->lock
HALF_LOCKED2 &seq->lock
HALF_LOCKED2 flags
HALF_LOCKED2 global &scan_mutex
HALF_LOCKED2 irq
HALF_LOCKED2 rcu_read
TYPE_LOCK (struct kmemleak_object)->lock

mm/kmemleak.c update_refs() -> color_white()

Type Parameter Key Value
PARAM_VALUE 0 object 4096-ptr_max
DATA_SOURCE 0 object $0
PREEMPT_ADD
LOCK2 global &kmemleak_lock
LOCK2 0 &object->lock
HALF_LOCKED2 &scanned->lock
HALF_LOCKED2 flags
HALF_LOCKED2 global &scan_mutex
TYPE_LOCK (struct kmemleak_object)->lock