Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

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

Type Parameter Key Value
PARAM_VALUE 0 object 4096-ptr_max
PARAM_VALUE 0 object->count 0
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 pointer_update_refs() -> color_gray()

Type Parameter Key Value
PARAM_VALUE 0 object 4096-ptr_max
DATA_SOURCE 0 object r __lookup_object
PREEMPT_ADD <- disables preempt
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

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

Type Parameter Key Value
PARAM_VALUE 0 object 4096-ptr_max
PARAM_VALUE 0 object->min_count (-2147483647)-s32max
CAPPED_DATA 0 object->min_count 1
DATA_SOURCE 0 object $0
PARAM_COMPARE 0 object->count <= $0->min_count
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