Defined in 1 files as a prototype:

Defined in 2 files as a function:

Referenced in 8 files:

Smatch caller information:

drivers/opp/of.c __free_put_opp_table() -> dev_pm_opp_put_opp_table()

Type Parameter Key Value
PARAM_VALUE 0 opp_table 1-ptr_max
BIT_INFO 0 opp_table 0x0,0x7fffffffffffffff
BIT_INFO 0 opp_table 0x0,0x7fffffffffffffff
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/opp/of.c _of_add_table_indexed() -> dev_pm_opp_put_opp_table()

Type Parameter Key Value
PARAM_VALUE 0 opp_table 4096-ptr_max
PARAM_VALUE 0 opp_table->dentry->d_children.first 4096-ptr_max
PARAM_VALUE 0 opp_table->dentry->d_sb 4096-ptr_max
PARAM_VALUE 0 *opp_table->dentry->d_children.first->pprev 1-u64max
BUF_SIZE 0 opp_table (-1),1-s32max
BUF_SIZE 0 opp_table (-1),1-s32max
CAPPED_DATA 0 opp_table->np 1
DATA_SOURCE 0 opp_table r _add_opp_table_indexed
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/opp/of.c _opp_table_free_required_tables() -> dev_pm_opp_put_opp_table()

Type Parameter Key Value
PARAM_VALUE 0 opp_table 1-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/pmdomain/core.c of_genpd_add_provider_onecell() -> dev_pm_opp_put_opp_table()

Type Parameter Key Value
PARAM_VALUE 0 opp_table 1-u64max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/pmdomain/core.c of_genpd_add_provider_simple() -> dev_pm_opp_put_opp_table()

Type Parameter Key Value
PARAM_VALUE 0 opp_table 1-u64max
BUF_SIZE 0 opp_table (-1),1-s32max
BUF_SIZE 0 opp_table (-1),1-s32max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/pmdomain/core.c of_genpd_del_provider() -> dev_pm_opp_put_opp_table()

Type Parameter Key Value
PARAM_VALUE 0 opp_table 1-u64max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &gpd_list_lock
LOCK2 global &of_genpd_mutex
HALF_LOCKED2 &_dev->mutex
HALF_LOCKED2 &dev->mutex

drivers/devfreq/governor_passive.c delete_parent_cpu_data() -> dev_pm_opp_put_opp_table()

Type Parameter Key Value
PARAM_VALUE 0 opp_table 1-u64max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 _T->lock
HALF_LOCKED2 global &devfreq_list_lock

drivers/gpu/drm/panthor/panthor_devfreq.c panthor_devfreq_init() -> dev_pm_opp_put_opp_table()

Type Parameter Key Value
PARAM_VALUE 0 opp_table 4096-ptr_max
BUF_SIZE 0 opp_table (-1),1-s32max
BUF_SIZE 0 opp_table (-1),1-s32max
DATA_SOURCE 0 opp_table r dev_pm_opp_get_opp_table
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/opp/cpu.c __free_put_opp_table() -> dev_pm_opp_put_opp_table()

Type Parameter Key Value
PARAM_VALUE 0 opp_table 1-ptr_max
BIT_INFO 0 opp_table 0x0,0x7fffffffffffffff
BIT_INFO 0 opp_table 0x0,0x7fffffffffffffff
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/soc/samsung/exynos-asv.c exynos_asv_update_opps() -> dev_pm_opp_put_opp_table()

Type Parameter Key Value
PARAM_VALUE 0 opp_table 4096-ptr_max
BUF_SIZE 0 opp_table (-1),1-s32max
BUF_SIZE 0 opp_table (-1),1-s32max
CAPPED_DATA 0 opp_table 1
DATA_SOURCE 0 opp_table r dev_pm_opp_get_opp_table
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/devfreq/devfreq.c devfreq_dev_release() -> dev_pm_opp_put_opp_table()

Type Parameter Key Value
PARAM_VALUE 0 opp_table 1-u64max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/opp/core.c __free_put_opp_table() -> dev_pm_opp_put_opp_table()

Type Parameter Key Value
PARAM_VALUE 0 opp_table 1-ptr_max
BIT_INFO 0 opp_table 0x0,0x7fffffffffffffff
BIT_INFO 0 opp_table 0x0,0x7fffffffffffffff
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &policy->rwsem
HALF_LOCKED2 _T->lock

drivers/opp/core.c _add_opp_table_indexed() -> dev_pm_opp_put_opp_table()

Type Parameter Key Value
PARAM_VALUE 0 opp_table 4096-ptr_max
PARAM_VALUE 0 opp_table->dentry->d_inode->i_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 opp_table->dentry->d_inode->i_rwsem.first_waiter->type 0-1
DATA_SOURCE 0 opp_table r _managed_opp
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/opp/core.c _opp_clear_config() -> dev_pm_opp_put_opp_table()

Type Parameter Key Value
BUF_SIZE 0 opp_table (-1),1-s32max
BUF_SIZE 0 opp_table (-1),1-s32max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/opp/core.c _opp_remove_all() -> dev_pm_opp_put_opp_table()

Type Parameter Key Value
PARAM_VALUE 0 opp_table 4096-ptr_max
BUF_SIZE 0 opp_table (-1),1-s32max
BUF_SIZE 0 opp_table (-1),1-s32max
DATA_SOURCE 0 opp_table $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &policy->rwsem
HALF_LOCKED2 global &gpd_list_lock

drivers/opp/core.c _opp_set_required_dev() -> dev_pm_opp_put_opp_table()

Type Parameter Key Value
PARAM_VALUE 0 opp_table 0-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dev->mutex

drivers/opp/core.c _opp_set_required_dev() -> dev_pm_opp_put_opp_table()

Type Parameter Key Value
PARAM_VALUE 0 opp_table 4096-ptr_max
BUF_SIZE 0 opp_table (-1),1-s32max
BUF_SIZE 0 opp_table (-1),1-s32max
CAPPED_DATA 0 opp_table 1
DATA_SOURCE 0 opp_table r _find_opp_table
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dev->mutex

drivers/opp/core.c _update_opp_table_clk() -> dev_pm_opp_put_opp_table()

Type Parameter Key Value
PARAM_VALUE 0 opp_table 4096-ptr_max
PARAM_VALUE 0 opp_table->clk (-4095)-(-3),(-1)
PARAM_VALUE 0 opp_table->clks 0
PARAM_VALUE 0 opp_table->dentry 1-u64max
PARAM_VALUE 0 opp_table->dev_list.next 4096-ptr_max
PARAM_VALUE 0 opp_table->dev_list.next->next 4096-ptr_max
PARAM_VALUE 0 opp_table->dev_list.next->prev 4096-ptr_max
PARAM_VALUE 0 opp_table->dev_list.prev 4096-ptr_max
PARAM_VALUE 0 opp_table->dev_list.prev->next 4096-ptr_max
PARAM_VALUE 0 opp_table->dev_list.prev->prev 4096-ptr_max
PARAM_VALUE 0 opp_table->kref.refcount.refs.counter 1
PARAM_VALUE 0 opp_table->lazy.next 4096-ptr_max
PARAM_VALUE 0 opp_table->lazy.next->next 4096-ptr_max
PARAM_VALUE 0 opp_table->lazy.prev 4096-ptr_max
PARAM_VALUE 0 opp_table->lazy.prev->next 4096-ptr_max
PARAM_VALUE 0 opp_table->lazy.prev->prev 4096-ptr_max
PARAM_VALUE 0 opp_table->lock.dep_map->name 0-255
PARAM_VALUE 0 opp_table->lock.first_waiter 0
PARAM_VALUE 0 opp_table->lock.magic 4096-ptr_max
PARAM_VALUE 0 opp_table->lock.osq.tail.counter 0
PARAM_VALUE 0 opp_table->lock.owner.counter 0
PARAM_VALUE 0 opp_table->node.next 4096-ptr_max
PARAM_VALUE 0 opp_table->node.prev 1516203340774719488
PARAM_VALUE 0 opp_table->opp_list.next 4096-ptr_max
PARAM_VALUE 0 opp_table->opp_list.next->next 4096-ptr_max
PARAM_VALUE 0 opp_table->opp_list.prev 4096-ptr_max
PARAM_VALUE 0 opp_table->opp_list.prev->next 4096-ptr_max
PARAM_VALUE 0 opp_table->opp_list.prev->prev 4096-ptr_max
PARAM_VALUE 0 opp_table->regulator_count (-1)
BUF_SIZE 0 opp_table (-1),1-s32max
BUF_SIZE 0 opp_table (-1),1-s32max
BUF_SIZE 0 opp_table->clk (-1),24
DATA_SOURCE 0 opp_table $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 opp_table->path_count
NO_OVERFLOW_SIMPLE 0 opp_table->required_opp_count
HALF_LOCKED2 &dev->mutex

drivers/opp/core.c dev_pm_opp_add_dynamic() -> dev_pm_opp_put_opp_table()

Type Parameter Key Value
PARAM_VALUE 0 opp_table 4096-ptr_max
PARAM_VALUE 0 opp_table->regulator_count 1
BUF_SIZE 0 opp_table (-1),1-s32max
BUF_SIZE 0 opp_table (-1),1-s32max
DATA_SOURCE 0 opp_table r _add_opp_table
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &policy->rwsem
HALF_LOCKED2 global &gpd_list_lock

drivers/opp/core.c dev_pm_opp_remove() -> dev_pm_opp_put_opp_table()

Type Parameter Key Value
PARAM_VALUE 0 opp_table 4096-ptr_max
PARAM_VALUE 0 opp_table->clk_count s32min-1
BUF_SIZE 0 opp_table (-1),1-s32max
BUF_SIZE 0 opp_table (-1),1-s32max
CAPPED_DATA 0 &opp_table->opp_list 1
DATA_SOURCE 0 opp_table r _find_opp_table
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 _T->lock
HALF_LOCKED2 &policy->rwsem

drivers/opp/core.c dev_pm_opp_remove_table() -> dev_pm_opp_put_opp_table()

Type Parameter Key Value
PARAM_VALUE 0 opp_table 4096-ptr_max
BUF_SIZE 0 opp_table (-1),1-s32max
BUF_SIZE 0 opp_table (-1),1-s32max
DATA_SOURCE 0 opp_table r _find_opp_table
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL