Defined in 1 files as a prototype:

Defined in 2 files as a function:

Referenced in 6 files:

Smatch caller information:

net/ethtool/ioctl.c dev_ethtool() -> devlink_put()

Type Parameter Key Value
PARAM_VALUE 0 devlink 1-u64max
NOCHECK_CALL

net/devlink/core.c __devlinks_xa_find_get() -> devlink_put()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
PARAM_VALUE 0 devlink->refcount.refs.counter (-1073741824),0-s32max
CAPPED_DATA 0 devlink->_net.net 1
DATA_SOURCE 0 devlink r xa_find
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read

net/devlink/core.c devlink_free() -> devlink_put()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
PARAM_VALUE 0 devlink->lock.dep_map->name 0-255
PARAM_VALUE 0 devlink->lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 devlink->lock.first_waiter->task->blocked_lock.dep_map->name 0-255
PARAM_VALUE 0 devlink->nested_rels.xa_head 0
PARAM_VALUE 0 devlink->ops->reload_actions 0-7
PARAM_VALUE 0 devlink->ops->reload_down 0,4096-ptr_max
PARAM_VALUE 0 devlink->ops->reload_limits 0-3
PARAM_VALUE 0 devlink->ops->reload_up 0,4096-ptr_max
PARAM_VALUE 0 devlink->params.xa_head 0
PARAM_VALUE 0 devlink->ports.xa_head 0
PARAM_VALUE 0 devlink->refcount.refs.counter (-1073741824),0-s32max
PARAM_VALUE 0 devlink->rel 0
PARAM_VALUE 0 devlink->snapshot_ids.xa_head 0
CAPPED_DATA 0 devlink 1
CAPPED_DATA 0 &devlink->dpipe_table_list 1
CAPPED_DATA 0 &devlink->linecard_list 1
CAPPED_DATA 0 &devlink->region_list 1
CAPPED_DATA 0 &devlink->reporter_list 1
CAPPED_DATA 0 &devlink->resource_list 1
CAPPED_DATA 0 &devlink->sb_list 1
CAPPED_DATA 0 &devlink->trap_group_list 1
CAPPED_DATA 0 &devlink->trap_list 1
CAPPED_DATA 0 &devlink->trap_policer_list 1
DATA_SOURCE 0 devlink $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &_dev->mutex
HALF_LOCKED2 &dev->mutex
HALF_LOCKED2 &oct->pci_dev->dev.mutex
HALF_LOCKED2 global &dsa2_mutex
HALF_LOCKED2 global &hnae3_common_lock
HALF_LOCKED2 global &shd_mutex

net/devlink/core.c devlink_nested_in_get_lock() -> devlink_put()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
PARAM_VALUE 0 devlink->lock.dep_map->name 0-255
PARAM_VALUE 0 devlink->lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 devlink->ops->supported_cross_device_rate_nodes 1
PARAM_VALUE 0 devlink->refcount.refs.counter (-1073741824),0-s32max
DATA_SOURCE 0 devlink r devlinks_xa_get
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &devlink->lock

net/devlink/core.c devlink_pernet_pre_exit() -> devlink_put()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
PARAM_VALUE 0 devlink->dev 0,4096-ptr_max
PARAM_VALUE 0 devlink->lock.dep_map->name 0-255
PARAM_VALUE 0 devlink->lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 devlink->ops->reload_down 0,4096-ptr_max
DATA_SOURCE 0 devlink r devlinks_xa_find_get
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &pernet_ops_rwsem

net/devlink/core.c devlink_rel_devlink_handle_put() -> devlink_put()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
DATA_SOURCE 0 devlink r devlink_rel_devlink_get
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

net/devlink/core.c devlink_rel_nested_in_notify_work() -> devlink_put()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
PARAM_VALUE 0 devlink->refcount.refs.counter (-1073741824),0-s32max
DATA_SOURCE 0 devlink r devlinks_xa_get
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

net/devlink/core.c devlink_rel_nested_in_notify_work() -> devlink_put()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
PARAM_VALUE 0 devlink->lock.dep_map->name 0-255
PARAM_VALUE 0 devlink->refcount.refs.counter (-1073741824),0-s32max
DATA_SOURCE 0 devlink r devlinks_xa_get
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

net/devlink/core.c devlink_rel_nested_in_notify_work() -> devlink_put()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
PARAM_VALUE 0 devlink->lock.dep_map->name 0-255
PARAM_VALUE 0 devlink->refcount.refs.counter (-1073741824),0-s32max
DATA_SOURCE 0 devlink r devlinks_xa_get
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

net/devlink/region.c devlink_nl_region_read_dumpit() -> devlink_put()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
PARAM_VALUE 0 devlink->dev 0,4096-ptr_max
PARAM_VALUE 0 devlink->lock.dep_map->name 0-255
PARAM_VALUE 0 devlink->lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 devlink->lock.first_waiter->list.prev->prev 5159360019465732096
CAPPED_DATA 0 devlink->_net.net 1
CAPPED_DATA 0 devlink->index 1
DATA_SOURCE 0 devlink r devlink_get_from_attrs_lock
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &nlk->nl_cb_mutex
TYPE_LOCK (struct netlink_sock)->nl_cb_mutex

net/devlink/region.c devlink_nl_region_read_dumpit() -> devlink_put()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
PARAM_VALUE 0 devlink->dev 0,4096-ptr_max
PARAM_VALUE 0 devlink->lock.dep_map->name 0-255
PARAM_VALUE 0 devlink->lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 devlink->lock.first_waiter->list.prev->prev 5159360019465732096
CAPPED_DATA 0 devlink->_net.net 1
DATA_SOURCE 0 devlink r devlink_get_from_attrs_lock
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &nlk->nl_cb_mutex
TYPE_LOCK (struct netlink_sock)->nl_cb_mutex

net/devlink/netlink.c __devlink_nl_post_doit() -> devlink_put()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
PARAM_VALUE 0 devlink->lock.dep_map->name 0-255
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dev->lock
HALF_LOCKED2 &devlink->lock
HALF_LOCKED2 &net->xfrm.xfrm_cfg_mutex
HALF_LOCKED2 global &audit_cmd_mutex.lock
HALF_LOCKED2 global &cb_lock
HALF_LOCKED2 global &crypto_cfg_mutex
HALF_LOCKED2 global &dpll_lock
HALF_LOCKED2 global &hwsim_phys_lock
HALF_LOCKED2 global &net_dm_mutex
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 global &rx_queue_mutex
HALF_LOCKED2 rcu_read

net/devlink/netlink.c __devlink_nl_post_doit() -> devlink_put()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dev->lock
HALF_LOCKED2 &devlink->lock
HALF_LOCKED2 &net->xfrm.xfrm_cfg_mutex
HALF_LOCKED2 global &audit_cmd_mutex.lock
HALF_LOCKED2 global &cb_lock
HALF_LOCKED2 global &crypto_cfg_mutex
HALF_LOCKED2 global &dpll_lock
HALF_LOCKED2 global &hwsim_phys_lock
HALF_LOCKED2 global &net_dm_mutex
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 global &rx_queue_mutex
HALF_LOCKED2 rcu_read

net/devlink/netlink.c __devlink_nl_pre_doit() -> devlink_put()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
PARAM_VALUE 0 devlink->lock.dep_map->name 0-255
PARAM_VALUE 0 devlink->lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 devlink->lock.first_waiter->list.prev->prev 5159360019465732096
CAPPED_DATA 0 devlink->_net.net 1
DATA_SOURCE 0 devlink r devlink_get_from_attrs_lock
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &net->xfrm.xfrm_cfg_mutex
HALF_LOCKED2 global &audit_cmd_mutex.lock
HALF_LOCKED2 global &cb_lock
HALF_LOCKED2 global &crypto_cfg_mutex
HALF_LOCKED2 global &hwsim_phys_lock
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 global &rx_queue_mutex
HALF_LOCKED2 rcu_read

net/devlink/netlink.c __devlink_nl_pre_doit() -> devlink_put()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
PARAM_VALUE 0 devlink->lock.dep_map->name 0-255
PARAM_VALUE 0 devlink->lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 devlink->lock.first_waiter->list.prev->prev 5159360019465732096
CAPPED_DATA 0 devlink->_net.net 1
DATA_SOURCE 0 devlink r devlink_get_parent_from_attrs_lock
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &net->xfrm.xfrm_cfg_mutex
HALF_LOCKED2 global &audit_cmd_mutex.lock
HALF_LOCKED2 global &cb_lock
HALF_LOCKED2 global &crypto_cfg_mutex
HALF_LOCKED2 global &hwsim_phys_lock
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 global &rx_queue_mutex
HALF_LOCKED2 rcu_read

net/devlink/netlink.c devlink_get_from_attrs_lock() -> devlink_put()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
PARAM_VALUE 0 devlink->dev 0,4096-ptr_max
CAPPED_DATA 0 devlink->_net.net 1
DATA_SOURCE 0 devlink r devlinks_xa_find_get
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

net/devlink/netlink.c devlink_get_from_attrs_lock() -> devlink_put()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
PARAM_VALUE 0 devlink->lock.dep_map->name 0-255
PARAM_VALUE 0 devlink->lock.first_waiter->list.prev->next 5159360019465732096
CAPPED_DATA 0 devlink->_net.net 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

net/devlink/netlink.c devlink_nl_inst_iter_dumpit() -> devlink_put()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
PARAM_VALUE 0 devlink->lock.dep_map->name 0-255
PARAM_VALUE 0 devlink->lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 devlink->ops->info_get 0,4096-ptr_max
PARAM_VALUE 0 devlink->ops->sb_pool_get 0,4096-ptr_max
PARAM_VALUE 0 devlink->ops->sb_port_pool_get 0,5080524251109040128,5500329137182081024,8058848025358356480
PARAM_VALUE 0 devlink->ops->sb_tc_pool_bind_get 0,557608487823060992,7803434078078054400,8622157503094607872
PARAM_VALUE 0 devlink->ops->selftest_check 0,8032679069814992896
DATA_SOURCE 0 devlink r devlinks_xa_find_get
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &nlk->nl_cb_mutex
TYPE_LOCK (struct netlink_sock)->nl_cb_mutex

net/devlink/netlink.c devlink_nl_inst_single_dumpit() -> devlink_put()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
PARAM_VALUE 0 devlink->lock.dep_map->name 0-255
PARAM_VALUE 0 devlink->lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 devlink->lock.first_waiter->list.prev->prev 5159360019465732096
CAPPED_DATA 0 devlink->_net.net 1
DATA_SOURCE 0 devlink r devlink_get_from_attrs_lock
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &nlk->nl_cb_mutex
TYPE_LOCK (struct netlink_sock)->nl_cb_mutex

net/devlink/health.c devlink_health_reporter_get_from_cb_lock() -> devlink_put()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
PARAM_VALUE 0 devlink->lock.dep_map->name 0-255
PARAM_VALUE 0 devlink->lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 devlink->lock.first_waiter->list.prev->prev 5159360019465732096
CAPPED_DATA 0 devlink->_net.net 1
DATA_SOURCE 0 devlink r devlink_get_from_attrs_lock
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &nlk->nl_cb_mutex
TYPE_LOCK (struct netlink_sock)->nl_cb_mutex

net/devlink/health.c devlink_nl_health_reporter_dump_get_dumpit() -> devlink_put()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
PARAM_VALUE 0 devlink->lock.dep_map->name 0-255
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &nlk->nl_cb_mutex
TYPE_LOCK (struct netlink_sock)->nl_cb_mutex

net/devlink/health.c devlink_nl_health_reporter_dump_get_dumpit() -> devlink_put()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
PARAM_VALUE 0 devlink->lock.dep_map->name 0-255
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &nlk->nl_cb_mutex
TYPE_LOCK (struct netlink_sock)->nl_cb_mutex

net/devlink/rate.c devl_rate_lock() -> devlink_put()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
PARAM_VALUE 0 devlink->lock.dep_map->name 0-255
PARAM_VALUE 0 devlink->lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 devlink->lock.first_waiter->list.prev->prev 5159360019465732096
PARAM_VALUE 0 devlink->ops->supported_cross_device_rate_nodes 1
PARAM_VALUE 0 devlink->refcount.refs.counter (-1073741824),0-s32max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &devlink->lock

net/devlink/rate.c devl_rate_unlock() -> devlink_put()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
PARAM_VALUE 0 devlink->lock.dep_map->name 0-255
DATA_SOURCE 0 devlink $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &devlink->lock