Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 37 files:

Smatch caller information:

drivers/dpll/zl3073x/devlink.c zl3073x_devlink_register() -> devl_lock()

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

drivers/dpll/zl3073x/devlink.c zl3073x_devlink_unregister() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
DATA_SOURCE 0 devlink r priv_to_devlink
NOCHECK_CALL

drivers/net/ethernet/mellanox/mlx5/core/health.c mlx5_fw_fatal_reporter_err_work() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
DATA_SOURCE 0 devlink r priv_to_devlink
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

drivers/net/ethernet/mellanox/mlx5/core/health.c mlx5_health_init() -> devl_lock()

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

drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c mlx5_fw_reset_complete_reload() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
DATA_SOURCE 0 devlink r priv_to_devlink
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

drivers/net/ethernet/intel/ice/ice_main.c class_devl_constructor() -> devl_lock()

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

drivers/net/ethernet/intel/ice/ice_main.c ice_probe() -> devl_lock()

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

drivers/net/ethernet/intel/ice/ice_main.c ice_remove() -> devl_lock()

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

drivers/net/ethernet/intel/ice/ice_eswitch.c ice_eswitch_attach_vf() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
DATA_SOURCE 0 devlink r priv_to_devlink
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &pf->vfs.table_lock
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &pdev->dev.mutex
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &vf->cfg_lock
HALF_LOCKED2 global &pci_rescan_remove_lock
TYPE_LOCK (struct ice_vfs)->table_lock

drivers/net/ethernet/intel/ice/ice_eswitch.c ice_eswitch_detach_vf() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
DATA_SOURCE 0 devlink r priv_to_devlink
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &vf->cfg_lock
HALF_LOCKED2 &pf->vfs.table_lock
HALF_LOCKED2 &vfs->table_lock
TYPE_LOCK (struct ice_vf)->cfg_lock
TYPE_LOCK (struct ice_vfs)->table_lock

net/devlink/core.c devl_dev_lock() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
PARAM_VALUE 0 devlink->ops->reload_down 0,4096-ptr_max
CAPPED_DATA 0 devlink->_net.net 1
DATA_SOURCE 0 devlink $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &pernet_ops_rwsem
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 0 &devlink->dev->mutex

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

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
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
BUF_SIZE 0 devlink->_net.net (-1),10624
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() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
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_register() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
CAPPED_DATA 0 devlink 1
DATA_SOURCE 0 devlink $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 global &dsa2_mutex
HALF_LOCKED2 global &hnae3_common_lock

net/devlink/core.c devlink_unregister() -> devl_lock()

Type Parameter Key Value
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

net/devlink/sb.c devlink_sb_register() -> devl_lock()

Type Parameter Key Value
DATA_SOURCE 0 devlink $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

net/devlink/sb.c devlink_sb_unregister() -> devl_lock()

Type Parameter Key Value
DATA_SOURCE 0 devlink $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/net/ethernet/amazon/ena/ena_devlink.c ena_devlink_configure_params() -> devl_lock()

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->params.xa_lock.rlock.dep_map->name 0-255
CAPPED_DATA 0 devlink 1
CAPPED_DATA 0 devlink->dev_name_index 1
CAPPED_DATA 0 devlink->ops->reload_actions 1
DATA_SOURCE 0 devlink $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

drivers/net/ethernet/amazon/ena/ena_devlink.c ena_devlink_disable_phc_param() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
DATA_SOURCE 0 devlink $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

drivers/net/ethernet/amazon/ena/ena_devlink.c ena_devlink_register() -> devl_lock()

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->lock.first_waiter->task->blocked_lock.dep_map->name 0-255
PARAM_VALUE 0 devlink->lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 devlink->params.xa_lock.rlock.dep_map->name 0-255
CAPPED_DATA 0 devlink->dev_name_index 1
CAPPED_DATA 0 devlink->ops->reload_actions 1
DATA_SOURCE 0 devlink $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/net/ethernet/amazon/ena/ena_devlink.c ena_devlink_unregister() -> devl_lock()

Type Parameter Key Value
DATA_SOURCE 0 devlink $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &rtnl_mutex
HALF_LOCKED2 &dev->mutex

drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c esw_qos_lock() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 1-u64max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &block->cb_lock
HALF_LOCKED2 global &rtnl_mutex

drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c esw_qos_shd_lock() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 1-u64max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &esw->state_lock
TYPE_LOCK (struct mlx5_eswitch)->state_lock

net/devlink/sh_dev.c devlink_shd_create() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
PARAM_VALUE 0 devlink->_net.net 1824583183996030976
PARAM_VALUE 0 devlink->dev_name_index 1-u64max
PARAM_VALUE 0 devlink->dpipe_table_list.next 4096-ptr_max
PARAM_VALUE 0 devlink->dpipe_table_list.next->next 4096-ptr_max
PARAM_VALUE 0 devlink->dpipe_table_list.prev 4096-ptr_max
PARAM_VALUE 0 devlink->dpipe_table_list.prev->next 4096-ptr_max
PARAM_VALUE 0 devlink->dpipe_table_list.prev->prev 4096-ptr_max
PARAM_VALUE 0 devlink->linecard_list.next 4096-ptr_max
PARAM_VALUE 0 devlink->linecard_list.next->next 4096-ptr_max
PARAM_VALUE 0 devlink->linecard_list.prev 4096-ptr_max
PARAM_VALUE 0 devlink->linecard_list.prev->next 4096-ptr_max
PARAM_VALUE 0 devlink->linecard_list.prev->prev 4096-ptr_max
PARAM_VALUE 0 devlink->lock.dep_map->name 0-255
PARAM_VALUE 0 devlink->lock.first_waiter 0
PARAM_VALUE 0 devlink->lock.magic 4096-ptr_max
PARAM_VALUE 0 devlink->lock.osq.tail.counter 0
PARAM_VALUE 0 devlink->lock.owner.counter 0
PARAM_VALUE 0 devlink->nested_rels.xa_flags 33554436
PARAM_VALUE 0 devlink->nested_rels.xa_head 0
PARAM_VALUE 0 devlink->ops 1020847374782255104
PARAM_VALUE 0 devlink->ops->reload_actions 0,2,4,6
PARAM_VALUE 0 devlink->ops->reload_down 0,4096-ptr_max
PARAM_VALUE 0 devlink->ops->reload_up 0,4096-ptr_max
PARAM_VALUE 0 devlink->params.xa_flags 33554436
PARAM_VALUE 0 devlink->params.xa_head 0
PARAM_VALUE 0 devlink->ports.xa_flags 33554436
PARAM_VALUE 0 devlink->ports.xa_head 0
PARAM_VALUE 0 devlink->rate_list.next 4096-ptr_max
PARAM_VALUE 0 devlink->rate_list.next->next 4096-ptr_max
PARAM_VALUE 0 devlink->rate_list.prev 4096-ptr_max
PARAM_VALUE 0 devlink->rate_list.prev->next 4096-ptr_max
PARAM_VALUE 0 devlink->rate_list.prev->prev 4096-ptr_max
PARAM_VALUE 0 devlink->refcount.refs.counter 1
PARAM_VALUE 0 devlink->region_list.next 4096-ptr_max
PARAM_VALUE 0 devlink->region_list.next->next 4096-ptr_max
PARAM_VALUE 0 devlink->region_list.prev 4096-ptr_max
PARAM_VALUE 0 devlink->region_list.prev->next 4096-ptr_max
PARAM_VALUE 0 devlink->region_list.prev->prev 4096-ptr_max
PARAM_VALUE 0 devlink->reporter_list.next 4096-ptr_max
PARAM_VALUE 0 devlink->reporter_list.next->next 4096-ptr_max
PARAM_VALUE 0 devlink->reporter_list.prev 4096-ptr_max
PARAM_VALUE 0 devlink->reporter_list.prev->next 4096-ptr_max
PARAM_VALUE 0 devlink->reporter_list.prev->prev 4096-ptr_max
PARAM_VALUE 0 devlink->resource_list.next 4096-ptr_max
PARAM_VALUE 0 devlink->resource_list.next->next 4096-ptr_max
PARAM_VALUE 0 devlink->resource_list.prev 4096-ptr_max
PARAM_VALUE 0 devlink->resource_list.prev->next 4096-ptr_max
PARAM_VALUE 0 devlink->resource_list.prev->prev 4096-ptr_max
PARAM_VALUE 0 devlink->sb_list.next 4096-ptr_max
PARAM_VALUE 0 devlink->sb_list.next->next 4096-ptr_max
PARAM_VALUE 0 devlink->sb_list.prev 4096-ptr_max
PARAM_VALUE 0 devlink->sb_list.prev->next 4096-ptr_max
PARAM_VALUE 0 devlink->sb_list.prev->prev 4096-ptr_max
PARAM_VALUE 0 devlink->snapshot_ids.xa_flags 33554436
PARAM_VALUE 0 devlink->snapshot_ids.xa_head 0
PARAM_VALUE 0 devlink->trap_group_list.next 4096-ptr_max
PARAM_VALUE 0 devlink->trap_group_list.next->next 4096-ptr_max
PARAM_VALUE 0 devlink->trap_group_list.prev 4096-ptr_max
PARAM_VALUE 0 devlink->trap_group_list.prev->next 4096-ptr_max
PARAM_VALUE 0 devlink->trap_group_list.prev->prev 4096-ptr_max
PARAM_VALUE 0 devlink->trap_list.next 4096-ptr_max
PARAM_VALUE 0 devlink->trap_list.next->next 4096-ptr_max
PARAM_VALUE 0 devlink->trap_list.prev 4096-ptr_max
PARAM_VALUE 0 devlink->trap_list.prev->next 4096-ptr_max
PARAM_VALUE 0 devlink->trap_list.prev->prev 4096-ptr_max
PARAM_VALUE 0 devlink->trap_policer_list.next 4096-ptr_max
PARAM_VALUE 0 devlink->trap_policer_list.next->next 4096-ptr_max
PARAM_VALUE 0 devlink->trap_policer_list.prev 4096-ptr_max
PARAM_VALUE 0 devlink->trap_policer_list.prev->next 4096-ptr_max
PARAM_VALUE 0 devlink->trap_policer_list.prev->prev 4096-ptr_max
BUF_SIZE 0 devlink s32min-s32max
BUF_SIZE 0 devlink->_net.net 10624
CAPPED_DATA 0 devlink 1
CAPPED_DATA 0 devlink->dev_name_index 1
CAPPED_DATA 0 devlink->ops->reload_actions 1
DATA_SOURCE 0 devlink r __devlink_alloc
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &shd_mutex
HALF_LOCKED2 &pool->lock

net/devlink/sh_dev.c devlink_shd_destroy() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
DATA_SOURCE 0 devlink r priv_to_devlink
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &shd_mutex

drivers/net/ethernet/netronome/nfp/nfp_net_main.c nfp_net_pci_probe() -> devl_lock()

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

drivers/net/ethernet/netronome/nfp/nfp_net_main.c nfp_net_pci_remove() -> devl_lock()

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

drivers/net/ethernet/netronome/nfp/nfp_net_main.c nfp_net_pf_app_clean() -> devl_lock()

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

drivers/net/ethernet/netronome/nfp/nfp_net_main.c nfp_net_pf_app_init() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
DATA_SOURCE 0 devlink r priv_to_devlink
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

drivers/net/ethernet/netronome/nfp/nfp_net_main.c nfp_net_pf_app_init() -> devl_lock()

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.osq.tail.counter 0-s32max
DATA_SOURCE 0 devlink r priv_to_devlink
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

drivers/net/ethernet/netronome/nfp/nfp_net_main.c nfp_net_refresh_vnics() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
DATA_SOURCE 0 devlink r priv_to_devlink
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c __bnxt_sriov_disable() -> devl_lock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &of->mutex
LOCK2 &pdev->dev.mutex
LOCK2 global &pci_rescan_remove_lock
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct device)->mutex
TYPE_LOCK (struct kernfs_open_file)->mutex

drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c bnxt_sriov_enable() -> devl_lock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &of->mutex
LOCK2 &pdev->dev.mutex
LOCK2 global &pci_rescan_remove_lock
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct device)->mutex
TYPE_LOCK (struct kernfs_open_file)->mutex

drivers/net/ethernet/intel/ice/ice_sf_eth.c ice_sf_dev_probe() -> devl_lock()

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

drivers/net/ethernet/intel/ice/ice_sf_eth.c ice_sf_dev_remove() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
DATA_SOURCE 0 devlink r priv_to_devlink
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dev->mutex

drivers/net/ethernet/amd/pds_core/main.c pdsc_init_pf() -> devl_lock()

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

drivers/net/ethernet/amd/pds_core/main.c pdsc_init_vf() -> devl_lock()

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

drivers/net/ethernet/amd/pds_core/main.c pdsc_init_vf() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
PARAM_VALUE 0 devlink->index 0-4294967295
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->lock.first_waiter->task->blocked_lock.dep_map->name 0-255
PARAM_VALUE 0 devlink->lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 devlink->nested_rels.xa_flags 0-4294967295
PARAM_VALUE 0 devlink->params.xa_flags 0-4294967295
PARAM_VALUE 0 devlink->ports.xa_flags 0-4294967295
PARAM_VALUE 0 devlink->refcount.refs.counter (-1073741824),0-s32max
PARAM_VALUE 0 devlink->reload_failed 0-1
PARAM_VALUE 0 devlink->snapshot_ids.xa_flags 0-4294967295
DATA_SOURCE 0 devlink r priv_to_devlink
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/net/ethernet/amd/pds_core/main.c pdsc_remove() -> devl_lock()

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

drivers/net/ethernet/mellanox/mlxsw/core.c __mlxsw_core_bus_device_register() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
PARAM_VALUE 0 devlink->index 0-4294967295
PARAM_VALUE 0 devlink->reload_failed 0-1
BUF_SIZE 0 devlink s32min-s32max
CAPPED_DATA 0 devlink 1
CAPPED_DATA 0 devlink->dev_name_index 1
CAPPED_DATA 0 devlink->ops->reload_actions 1
DATA_SOURCE 0 devlink r devlink_alloc
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 0 &devlink->lock

drivers/net/ethernet/mellanox/mlxsw/core.c mlxsw_core_bus_device_unregister() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
DATA_SOURCE 0 devlink r priv_to_devlink
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dev->mutex

net/devlink/param.c devlink_params_register() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
CAPPED_DATA 0 devlink 1
DATA_SOURCE 0 devlink $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

net/devlink/param.c devlink_params_unregister() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
CAPPED_DATA 0 devlink 1
DATA_SOURCE 0 devlink $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/net/ethernet/intel/ixgbe/ixgbe_main.c ixgbe_recovery_probe() -> devl_lock()

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

drivers/net/ethernet/intel/ixgbe/ixgbe_main.c ixgbe_remove() -> devl_lock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/net/ethernet/meta/fbnic/fbnic_pci.c __fbnic_pm_resume() -> devl_lock()

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

drivers/net/ethernet/meta/fbnic/fbnic_pci.c __fbnic_pm_resume() -> devl_lock()

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

drivers/net/ethernet/meta/fbnic/fbnic_pci.c fbnic_pm_suspend() -> devl_lock()

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

net/devlink/region.c devlink_port_region_create() -> devl_lock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &dsa2_mutex

net/devlink/region.c devlink_region_create() -> devl_lock()

Type Parameter Key Value
DATA_SOURCE 0 devlink $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

net/devlink/region.c devlink_region_destroy() -> devl_lock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/net/ethernet/mellanox/mlx4/main.c mlx4_init_one() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
BUF_SIZE 0 devlink s32min-s32max
CAPPED_DATA 0 devlink 1
CAPPED_DATA 0 devlink->dev_name_index 1
CAPPED_DATA 0 devlink->ops->reload_actions 1
DATA_SOURCE 0 devlink r devlink_alloc
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/net/ethernet/mellanox/mlx4/main.c mlx4_pci_err_detected() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
DATA_SOURCE 0 devlink r priv_to_devlink
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &pdev->dev.mutex

drivers/net/ethernet/mellanox/mlx4/main.c mlx4_pci_resume() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
DATA_SOURCE 0 devlink r priv_to_devlink
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &pdev->dev.mutex

drivers/net/ethernet/mellanox/mlx4/main.c mlx4_remove_one() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
PARAM_VALUE 0 devlink->index 0-4294967295
PARAM_VALUE 0 devlink->lock->first_waiter->task->blocked_lock.owner (-4611686018427387904)-4611686018427387903
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->nested_rels.xa_flags 0-4294967295
PARAM_VALUE 0 devlink->params.xa_flags 0-4294967295
PARAM_VALUE 0 devlink->ports.xa_flags 0-4294967295
PARAM_VALUE 0 devlink->refcount.refs.counter (-1073741824),0-s32max
PARAM_VALUE 0 devlink->rel 0
PARAM_VALUE 0 devlink->reload_failed 0-1
PARAM_VALUE 0 devlink->snapshot_ids.xa_flags 0-4294967295
PARAM_VALUE 0 *devlink->_net.net->netns_ids.idr_rt.xa_head (-4611686018427387904)-4611686018427387903
CAPPED_DATA 0 devlink 1
DATA_SOURCE 0 devlink r priv_to_devlink
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/net/ethernet/mellanox/mlx4/main.c mlx4_resume() -> devl_lock()

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

drivers/net/ethernet/mellanox/mlx4/main.c mlx4_shutdown() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
DATA_SOURCE 0 devlink r priv_to_devlink
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &dev->mutex
HALF_LOCKED2 &parent->mutex
HALF_LOCKED2 global &system_transition_mutex
TYPE_LOCK (struct device)->mutex

drivers/net/ethernet/mellanox/mlx4/main.c mlx4_suspend() -> devl_lock()

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

drivers/net/netdevsim/dev.c nsim_bus_dev_max_vfs_write() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
NOCHECK_CALL

drivers/net/netdevsim/dev.c nsim_drv_configure_vfs() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
DATA_SOURCE 0 devlink r priv_to_devlink
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &dev->mutex
LOCK2 &of->mutex
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct device)->mutex
TYPE_LOCK (struct kernfs_open_file)->mutex

drivers/net/netdevsim/dev.c nsim_drv_port_add() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &of->mutex
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct kernfs_open_file)->mutex

drivers/net/netdevsim/dev.c nsim_drv_port_del() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &of->mutex
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct kernfs_open_file)->mutex

drivers/net/netdevsim/dev.c nsim_drv_probe() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
BUF_SIZE 0 devlink s32min-s32max
CAPPED_DATA 0 devlink 1
CAPPED_DATA 0 devlink->dev_name_index 1
CAPPED_DATA 0 devlink->ops->reload_actions 1
DATA_SOURCE 0 devlink r devlink_alloc_ns
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/net/netdevsim/dev.c nsim_drv_remove() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
DATA_SOURCE 0 devlink r priv_to_devlink
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dev->mutex

net/devlink/netlink.c devl_dev_lock() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
CAPPED_DATA 0 devlink->_net.net 1
DATA_SOURCE 0 devlink $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 0 &devlink->dev->mutex

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

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
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
CAPPED_DATA 0 devlink->_net.net 1
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

drivers/net/ethernet/mellanox/mlx5/core/main.c mlx5_init_one() -> devl_lock()

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

drivers/net/ethernet/mellanox/mlx5/core/main.c mlx5_init_one_light() -> devl_lock()

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

drivers/net/ethernet/mellanox/mlx5/core/main.c mlx5_load_one() -> devl_lock()

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

drivers/net/ethernet/mellanox/mlx5/core/main.c mlx5_uninit_one() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
DATA_SOURCE 0 devlink r priv_to_devlink
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dev->mutex

drivers/net/ethernet/mellanox/mlx5/core/main.c mlx5_uninit_one_light() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
DATA_SOURCE 0 devlink r priv_to_devlink
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &dev->mutex
TYPE_LOCK (struct device)->mutex

drivers/net/ethernet/mellanox/mlx5/core/main.c mlx5_unload_one() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
DATA_SOURCE 0 devlink r priv_to_devlink
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dev->mutex

drivers/net/ethernet/mellanox/mlx4/catas.c mlx4_handle_error_state() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
DATA_SOURCE 0 devlink r priv_to_devlink
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

net/devlink/trap.c devlink_trap_groups_register() -> devl_lock()

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

net/devlink/trap.c devlink_trap_groups_unregister() -> devl_lock()

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->lock.first_waiter->task->blocked_lock.dep_map->name 0-255
PARAM_VALUE 0 devlink->ops->trap_group_init 0,4370573782860898304
CAPPED_DATA 0 devlink 1
DATA_SOURCE 0 devlink $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

net/devlink/trap.c devlink_traps_register() -> devl_lock()

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->lock.first_waiter->task->blocked_lock.dep_map->name 0-255
PARAM_VALUE 0 devlink->ops->trap_group_init 0,4370573782860898304
DATA_SOURCE 0 devlink $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

net/devlink/trap.c devlink_traps_unregister() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
PARAM_VALUE 0 devlink->ops->trap_group_init 0,4370573782860898304
CAPPED_DATA 0 devlink 1
DATA_SOURCE 0 devlink $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/net/ethernet/netronome/nfp/nfp_main.c nfp_pcie_sriov_disable() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
DATA_SOURCE 0 devlink r priv_to_devlink
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &pdev->dev.mutex
HALF_LOCKED2 global &pci_rescan_remove_lock

drivers/net/ethernet/netronome/nfp/nfp_main.c nfp_pcie_sriov_enable() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
DATA_SOURCE 0 devlink r priv_to_devlink
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &of->mutex
LOCK2 &pdev->dev.mutex
LOCK2 global &pci_rescan_remove_lock
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct device)->mutex
TYPE_LOCK (struct kernfs_open_file)->mutex

net/devlink/health.c devlink_health_report() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &h->lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 global &rtnl_mutex

net/devlink/health.c devlink_health_report() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &h->lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 global &rtnl_mutex

net/devlink/health.c devlink_health_reporter_create() -> devl_lock()

Type Parameter Key Value
DATA_SOURCE 0 devlink $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

net/devlink/health.c devlink_health_reporter_destroy() -> devl_lock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

net/devlink/health.c devlink_port_health_reporter_create() -> devl_lock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &esw->offloads.reps_lock

net/devlink/dev.c devlink_compat_flash_update() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
DATA_SOURCE 0 devlink $0
NOCHECK_CALL

net/devlink/dev.c devlink_compat_running_version() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
PARAM_VALUE 0 devlink->ops 4096-ptr_max
PARAM_VALUE 0 devlink->ops->info_get 4096-ptr_max
DATA_SOURCE 0 devlink $0
NOCHECK_CALL

drivers/net/ethernet/mellanox/mlxsw/spectrum.c mlxsw_sp_port_mapping_events_work() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
DATA_SOURCE 0 devlink r priv_to_devlink
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

drivers/net/ethernet/sfc/efx_devlink.c efx_fini_devlink_lock() -> devl_lock()

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

drivers/net/ethernet/sfc/efx_devlink.c efx_probe_devlink_and_lock() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
BUF_SIZE 0 devlink s32min-s32max
CAPPED_DATA 0 devlink 1
CAPPED_DATA 0 devlink->dev_name_index 1
CAPPED_DATA 0 devlink->ops->reload_actions 1
DATA_SOURCE 0 devlink r devlink_alloc
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

drivers/net/ethernet/mellanox/mlx5/core/sriov.c mlx5_sriov_disable() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
DATA_SOURCE 0 devlink r priv_to_devlink
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &pdev->dev.mutex
HALF_LOCKED2 global &pci_rescan_remove_lock

drivers/net/ethernet/mellanox/mlx5/core/sriov.c mlx5_sriov_enable() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
DATA_SOURCE 0 devlink r priv_to_devlink
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &of->mutex
LOCK2 &pdev->dev.mutex
LOCK2 global &pci_rescan_remove_lock
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct device)->mutex
TYPE_LOCK (struct kernfs_open_file)->mutex

drivers/net/ethernet/mellanox/mlx5/core/sriov.c mlx5_sriov_enable() -> devl_lock()

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.osq.tail.counter 0-s32max
DATA_SOURCE 0 devlink r priv_to_devlink
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &of->mutex
LOCK2 &pdev->dev.mutex
LOCK2 global &pci_rescan_remove_lock
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct device)->mutex
TYPE_LOCK (struct kernfs_open_file)->mutex

drivers/net/ethernet/intel/ice/devlink/devlink.c ice_tear_down_devlink_rate_tree() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
DATA_SOURCE 0 devlink r priv_to_devlink
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &pf->tc_mutex
HALF_LOCKED2 &pf->tc_mutex

net/devlink/port.c devlink_port_register_with_ops() -> devl_lock()

Type Parameter Key Value
DATA_SOURCE 0 devlink $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 global &dsa2_mutex

net/devlink/port.c devlink_port_unregister() -> devl_lock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 global &dsa2_mutex

net/dsa/devlink.c dsa_devlink_resource_occ_get_register() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
PARAM_VALUE 0 devlink->index 0-4294967295
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->lock.first_waiter->task->blocked_lock.dep_map->name 0-255
PARAM_VALUE 0 devlink->lock.osq.tail.counter 0-s32max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 global &dsa2_mutex

net/dsa/devlink.c dsa_devlink_resource_occ_get_unregister() -> devl_lock()

Type Parameter Key Value
NOCHECK_CALL

net/dsa/devlink.c dsa_devlink_resource_register() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink->index 0-4294967295
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 global &dsa2_mutex

net/devlink/resource.c devlink_resources_unregister() -> devl_lock()

Type Parameter Key Value
PARAM_VALUE 0 devlink 4096-ptr_max
DATA_SOURCE 0 devlink $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 global &dsa2_mutex