Documented in 1 files:

Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

drivers/mtd/ubi/wl.c __erase_worker() -> wl_tree_add()

Type Parameter Key Value
PARAM_VALUE 0 e 4096-ptr_max
PARAM_VALUE 0 e->ec 1-s32max
PARAM_VALUE 1 root 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 e->pnum
UNITS 0 e unit_byte
LOCK2 &ubi->wl_lock
LOCK2 &ubi->work_sem
HALF_LOCKED2 &ubi->device_mutex
HALF_LOCKED2 &ubi->fm_eba_sem
HALF_LOCKED2 &ubi->move_mutex
TYPE_LOCK (struct ubi_device)->wl_lock
TYPE_LOCK (struct ubi_device)->work_sem

drivers/mtd/ubi/wl.c erase_aeb() -> wl_tree_add()

Type Parameter Key Value
PARAM_VALUE 0 e 4096-ptr_max
PARAM_VALUE 0 e->ec 1-s32max
PARAM_VALUE 1 root 4096-ptr_max
DATA_SOURCE 0 e r kmem_cache_alloc_noprof
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 e->pnum
LOCK2 global &ubi_devices_mutex
HALF_LOCKED2 global &mtd_table_mutex

drivers/mtd/ubi/wl.c return_unused_peb() -> wl_tree_add()

Type Parameter Key Value
PARAM_VALUE 1 root 4096-ptr_max
DATA_SOURCE 0 e $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 e unit_byte
HALF_LOCKED2 global &ubi_devices_mutex

drivers/mtd/ubi/wl.c serve_prot_queue() -> wl_tree_add()

Type Parameter Key Value
PARAM_VALUE 0 e 4096-ptr_max
PARAM_VALUE 1 root 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &ubi->wl_lock
LOCK2 &ubi->work_sem
HALF_LOCKED2 &ubi->device_mutex
HALF_LOCKED2 &ubi->fm_eba_sem
HALF_LOCKED2 &ubi->move_mutex
TYPE_LOCK (struct ubi_device)->wl_lock
TYPE_LOCK (struct ubi_device)->work_sem

drivers/mtd/ubi/wl.c ubi_bitflip_check() -> wl_tree_add()

Type Parameter Key Value
PARAM_VALUE 0 e 4096-ptr_max
PARAM_VALUE 1 root 4096-ptr_max
CAPPED_DATA 0 e 1
CAPABLE 0 24
PREEMPT_ADD <- disables preempt
NOCHECK_CALL
LOCK2 &ubi->wl_lock
LOCK2 &ubi->work_sem
TYPE_LOCK (struct ubi_device)->wl_lock
TYPE_LOCK (struct ubi_device)->work_sem

drivers/mtd/ubi/wl.c ubi_bitflip_check() -> wl_tree_add()

Type Parameter Key Value
PARAM_VALUE 0 e 1-u64max
PARAM_VALUE 0 e->u.rb.rb_left 0,4096-ptr_max
PARAM_VALUE 0 e->u.rb.rb_right 0,4096-ptr_max
PARAM_VALUE 1 root 4096-ptr_max
CAPPED_DATA 0 e 1
CAPPED_DATA 0 e->pnum 1
CAPPED_DATA 0 &e->u.rb 1
CAPABLE 0 24
PREEMPT_ADD <- disables preempt
NOCHECK_CALL
LOCK2 &ubi->wl_lock
LOCK2 &ubi->work_sem
TYPE_LOCK (struct ubi_device)->wl_lock
TYPE_LOCK (struct ubi_device)->work_sem

drivers/mtd/ubi/wl.c ubi_refill_pools_and_lock() -> wl_tree_add()

Type Parameter Key Value
PARAM_VALUE 0 e 1-u64max
PARAM_VALUE 1 root 4096-ptr_max
PARAM_VALUE 1 root->rb_node 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 e unit_byte
LOCK2 &ubi->fm_eba_sem
LOCK2 &ubi->fm_protect
LOCK2 &ubi->wl_lock
LOCK2 &ubi->work_sem
HALF_LOCKED2 &le->mutex
HALF_LOCKED2 &ubi->device_mutex
HALF_LOCKED2 global &ubi_devices_mutex
TYPE_LOCK (struct ubi_device)->fm_eba_sem
TYPE_LOCK (struct ubi_device)->fm_protect
TYPE_LOCK (struct ubi_device)->wl_lock
TYPE_LOCK (struct ubi_device)->work_sem

drivers/mtd/ubi/wl.c ubi_wl_init() -> wl_tree_add()

Type Parameter Key Value
PARAM_VALUE 0 e 4096-ptr_max
PARAM_VALUE 1 root 4096-ptr_max
DATA_SOURCE 0 e r kmem_cache_alloc_noprof
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &ubi_devices_mutex
HALF_LOCKED2 global &mtd_table_mutex

drivers/mtd/ubi/wl.c ubi_wl_init() -> wl_tree_add()

Type Parameter Key Value
PARAM_VALUE 0 e 4096-ptr_max
PARAM_VALUE 1 root 4096-ptr_max
DATA_SOURCE 0 e r kmem_cache_alloc_noprof
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &ubi_devices_mutex
HALF_LOCKED2 global &mtd_table_mutex

drivers/mtd/ubi/wl.c ubi_wl_init() -> wl_tree_add()

Type Parameter Key Value
PARAM_VALUE 0 e 4096-ptr_max
PARAM_VALUE 1 root 4096-ptr_max
DATA_SOURCE 0 e r kmem_cache_alloc_noprof
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &ubi_devices_mutex
HALF_LOCKED2 global &mtd_table_mutex

drivers/mtd/ubi/wl.c ubi_wl_put_peb() -> wl_tree_add()

Type Parameter Key Value
PARAM_VALUE 0 e 1-u64max
PARAM_VALUE 1 root 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &le->mutex
LOCK2 &ubi->fm_protect
LOCK2 &ubi->wl_lock
TYPE_LOCK (struct ubi_device)->fm_protect
TYPE_LOCK (struct ubi_device)->wl_lock

drivers/mtd/ubi/wl.c ubi_wl_scrub_peb() -> wl_tree_add()

Type Parameter Key Value
PARAM_VALUE 1 root 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &le->mutex
LOCK2 &ubi->wl_lock
HALF_LOCKED2 &ubi->ckvol_mutex
TYPE_LOCK (struct ubi_device)->wl_lock

drivers/mtd/ubi/wl.c wear_leveling_worker() -> wl_tree_add()

Type Parameter Key Value
PARAM_VALUE 0 e 4096-ptr_max
PARAM_VALUE 1 root 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 e unit_byte
LOCK2 &ubi->fm_eba_sem
LOCK2 &ubi->move_mutex
LOCK2 &ubi->wl_lock
LOCK2 &ubi->work_sem
HALF_LOCKED2 &ubi->device_mutex
TYPE_LOCK (struct ubi_device)->fm_eba_sem
TYPE_LOCK (struct ubi_device)->move_mutex
TYPE_LOCK (struct ubi_device)->wl_lock
TYPE_LOCK (struct ubi_device)->work_sem

drivers/mtd/ubi/wl.c wear_leveling_worker() -> wl_tree_add()

Type Parameter Key Value
PARAM_VALUE 0 e 4096-ptr_max
PARAM_VALUE 1 root 4096-ptr_max
DATA_SOURCE 0 e r get_peb_for_wl
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &ubi->fm_eba_sem
LOCK2 &ubi->move_mutex
LOCK2 &ubi->wl_lock
LOCK2 &ubi->work_sem
HALF_LOCKED2 &ubi->device_mutex
TYPE_LOCK (struct ubi_device)->fm_eba_sem
TYPE_LOCK (struct ubi_device)->move_mutex
TYPE_LOCK (struct ubi_device)->wl_lock
TYPE_LOCK (struct ubi_device)->work_sem

drivers/mtd/ubi/wl.c wear_leveling_worker() -> wl_tree_add()

Type Parameter Key Value
PARAM_VALUE 0 e 4096-ptr_max
PARAM_VALUE 1 root 4096-ptr_max
PARAM_VALUE 1 root->rb_node 0,4096-ptr_max
DATA_SOURCE 0 e r get_peb_for_wl
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 e->pnum
LOCK2 &ubi->fm_eba_sem
LOCK2 &ubi->move_mutex
LOCK2 &ubi->wl_lock
LOCK2 &ubi->work_sem
HALF_LOCKED2 &ubi->device_mutex
TYPE_LOCK (struct ubi_device)->fm_eba_sem
TYPE_LOCK (struct ubi_device)->move_mutex
TYPE_LOCK (struct ubi_device)->wl_lock
TYPE_LOCK (struct ubi_device)->work_sem