Documented in 1 files:

Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

drivers/mtd/ubi/wl.c find_mean_wl_entry() -> find_wl_entry()

Type Parameter Key Value
PARAM_VALUE 0 ubi 4096-ptr_max
PARAM_VALUE 1 root 4096-ptr_max
PARAM_VALUE 1 root->rb_node 4096-ptr_max
PARAM_VALUE 3 pick_max 0
CAPPED_DATA 0 ubi->wl_free_max_diff 1
CAPPED_DATA 2 diff 1
DATA_SOURCE 0 ubi $0
DATA_SOURCE 1 root $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 ubi->bgt_thread->dl.pi_se->dl_runtime
NO_OVERFLOW_SIMPLE 0 ubi->ec_hdr_alsize
NO_OVERFLOW_SIMPLE 0 ubi->leb_size
NO_OVERFLOW_SIMPLE 0 ubi->mtd->erasesize
NO_OVERFLOW_SIMPLE 0 ubi->peb_count
NO_OVERFLOW_SIMPLE 0 ubi->peb_size
NO_OVERFLOW_SIMPLE 0 ubi->vid_hdr_aloffset
NO_OVERFLOW_SIMPLE 0 ubi->vtbl_size
LOCK2 0 &ubi->fm_eba_sem
LOCK2 0 &ubi->fm_protect
LOCK2 0 &ubi->wl_lock
LOCK2 0 &ubi->work_sem
HALF_LOCKED2 &le->mutex
HALF_LOCKED2 global &ubi_devices_mutex
HALF_LOCKED2 0 &ubi->device_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 need_wear_leveling() -> find_wl_entry()

Type Parameter Key Value
PARAM_VALUE 0 ubi 4096-ptr_max
PARAM_VALUE 1 root 4096-ptr_max
PARAM_VALUE 1 root->rb_node 1-u64max
PARAM_VALUE 3 pick_max 0
BUF_SIZE 0 ubi (-1),128
BUF_SIZE 0 ubi (-1),128
BUF_SIZE 0 ubi->lookuptbl (-1),8
DATA_SOURCE 0 ubi $0
STR_LEN 0 ubi->dev.parent->driver_data (-1)
STR_LEN 0 ubi->mtd (-1)
STR_LEN 0 ubi->mtd->dev.driver_data (-1)
STR_LEN 0 ubi->mtd->name (-1)
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 ubi->bgt_thread->dl.pi_se->dl_runtime
NO_OVERFLOW_SIMPLE 0 ubi->ec_hdr_alsize
NO_OVERFLOW_SIMPLE 0 ubi->fm_anchor->pnum
NO_OVERFLOW_SIMPLE 0 ubi->fm_size
NO_OVERFLOW_SIMPLE 0 ubi->leb_size
NO_OVERFLOW_SIMPLE 0 ubi->mtd->erasesize
NO_OVERFLOW_SIMPLE 0 ubi->peb_count
NO_OVERFLOW_SIMPLE 0 ubi->peb_size
NO_OVERFLOW_SIMPLE 0 ubi->vid_hdr_aloffset
NO_OVERFLOW_SIMPLE 0 ubi->vid_hdr_alsize
NO_OVERFLOW_SIMPLE 0 ubi->vtbl_size
LOCK2 0 &ubi->wl_lock
HALF_LOCKED2 global &ubi_devices_mutex
HALF_LOCKED2 0 &ubi->device_mutex
HALF_LOCKED2 0 &ubi->fm_eba_sem
HALF_LOCKED2 0 &ubi->move_mutex
HALF_LOCKED2 0 &ubi->work_sem
TYPE_LOCK (struct ubi_device)->wl_lock

drivers/mtd/ubi/wl.c need_wear_leveling() -> find_wl_entry()

Type Parameter Key Value
PARAM_VALUE 0 ubi 4096-ptr_max
PARAM_VALUE 1 root 4096-ptr_max
PARAM_VALUE 1 root->rb_node 1-u64max
PARAM_VALUE 3 pick_max 0
BUF_SIZE 0 ubi (-1),128
BUF_SIZE 0 ubi (-1),128
BUF_SIZE 0 ubi->lookuptbl (-1),8
DATA_SOURCE 0 ubi $0
STR_LEN 0 ubi->dev.parent->driver_data (-1)
STR_LEN 0 ubi->mtd (-1)
STR_LEN 0 ubi->mtd->dev.driver_data (-1)
STR_LEN 0 ubi->mtd->name (-1)
PARAM_COMPARE 0 ubi->fm_wl_pool.size != $0->fm_wl_pool.used
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 ubi->bgt_thread->dl.pi_se->dl_runtime
NO_OVERFLOW_SIMPLE 0 ubi->ec_hdr_alsize
NO_OVERFLOW_SIMPLE 0 ubi->fm_anchor->pnum
NO_OVERFLOW_SIMPLE 0 ubi->fm_size
NO_OVERFLOW_SIMPLE 0 ubi->leb_size
NO_OVERFLOW_SIMPLE 0 ubi->mtd->erasesize
NO_OVERFLOW_SIMPLE 0 ubi->peb_count
NO_OVERFLOW_SIMPLE 0 ubi->peb_size
NO_OVERFLOW_SIMPLE 0 ubi->vid_hdr_aloffset
NO_OVERFLOW_SIMPLE 0 ubi->vid_hdr_alsize
NO_OVERFLOW_SIMPLE 0 ubi->vtbl_size
LOCK2 0 &ubi->wl_lock
HALF_LOCKED2 global &ubi_devices_mutex
HALF_LOCKED2 0 &ubi->device_mutex
HALF_LOCKED2 0 &ubi->fm_eba_sem
HALF_LOCKED2 0 &ubi->move_mutex
HALF_LOCKED2 0 &ubi->work_sem
TYPE_LOCK (struct ubi_device)->wl_lock

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

Type Parameter Key Value
PARAM_VALUE 0 ubi 4096-ptr_max
PARAM_VALUE 1 root 4096-ptr_max
PARAM_VALUE 1 root->rb_node 4096-ptr_max
PARAM_VALUE 3 pick_max 0-1
CAPPED_DATA 0 ubi->fm_anchor 1
CAPPED_DATA 0 &ubi->fm_eba_sem 1
CAPPED_DATA 0 &ubi->fm_protect 1
CAPPED_DATA 0 &ubi->work_sem 1
DATA_SOURCE 0 ubi $0
FUZZY_MAX 3 pick_max 1
HARD_MAX 3 pick_max 1
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 ubi->bgt_thread->dl.pi_se->dl_runtime
NO_OVERFLOW_SIMPLE 0 ubi->vid_hdr_aloffset
LOCK2 0 &ubi->fm_eba_sem
LOCK2 0 &ubi->fm_protect
LOCK2 0 &ubi->wl_lock
LOCK2 0 &ubi->work_sem
HALF_LOCKED2 &le->mutex
HALF_LOCKED2 global &ubi_devices_mutex
HALF_LOCKED2 0 &ubi->device_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