Defined in 1 files as a function:

Referenced in 3 files:

Smatch caller information:

drivers/base/power/runtime.c pm_runtime_drop_link() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 0 link 4096-ptr_max
PARAM_VALUE 1 flags 4
DATA_SOURCE 0 link $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 global &device_links_lock

drivers/base/power/runtime.c pm_runtime_get_suppliers() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 0 link 4096-ptr_max
PARAM_VALUE 1 flags 4
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &device_links_srcu
HALF_LOCKED2 &dev->mutex

drivers/base/power/runtime.c rpm_get_suppliers() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 0 link 4096-ptr_max
PARAM_VALUE 1 flags 4
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &device_links_srcu

drivers/base/core.c __device_links_no_driver() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 0 link 4096-ptr_max
PARAM_VALUE 1 flags 64
CAPPED_DATA 0 &link->c_node 1
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &device_links_lock
HALF_LOCKED2 &dev->mutex

drivers/base/core.c __device_links_no_driver() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 0 link 4096-ptr_max
PARAM_VALUE 0 link->flags 64-u32max
PARAM_VALUE 1 flags 2
CAPPED_DATA 0 &link->c_node 1
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &device_links_lock
HALF_LOCKED2 &dev->mutex

drivers/base/core.c __device_links_no_driver() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 0 link 4096-ptr_max
PARAM_VALUE 0 link->flags 64-u32max
PARAM_VALUE 1 flags 128
CAPPED_DATA 0 &link->c_node 1
BIT_INFO 0 link->status 0x2,0x3
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &device_links_lock
HALF_LOCKED2 &dev->mutex

drivers/base/core.c __device_links_queue_sync_state() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 0 link 4096-ptr_max
PARAM_VALUE 1 flags 64
CAPPED_DATA 0 &link->s_node 1
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &device_links_lock

drivers/base/core.c __fw_devlink_relax_cycles() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 0 link 4096-ptr_max
PARAM_VALUE 1 flags 512
CAPPED_DATA 0 &link->c_node 1
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 global &device_links_lock

drivers/base/core.c auto_remove_on_show() -> device_link_test()

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

drivers/base/core.c auto_remove_on_show() -> device_link_test()

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

drivers/base/core.c device_link_add() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 0 link 4096-ptr_max
PARAM_VALUE 1 flags 256
CAPPED_DATA 0 link->consumer 1
CAPPED_DATA 0 &link->s_node 1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &device_links_lock
LOCK2 global &dpm_list_mtx
HALF_LOCKED2 &c->lock
HALF_LOCKED2 &card->mutex
HALF_LOCKED2 &dev->mutex
HALF_LOCKED2 &info->reg_lock
HALF_LOCKED2 &sdev->request_queue->limits_lock
HALF_LOCKED2 &shost->scan_mutex
HALF_LOCKED2 _T->lock
HALF_LOCKED2 global &component_mutex
HALF_LOCKED2 global &iommu_probe_device_lock
HALF_LOCKED2 global &san_rqsg_if.lock
HALF_LOCKED2 global &system_transition_mutex

drivers/base/core.c device_link_add() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 0 link 4096-ptr_max
PARAM_VALUE 1 flags 4
CAPPED_DATA 0 link->consumer 1
CAPPED_DATA 0 &link->s_node 1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &device_links_lock
LOCK2 global &dpm_list_mtx
HALF_LOCKED2 &c->lock
HALF_LOCKED2 &card->mutex
HALF_LOCKED2 &dev->mutex
HALF_LOCKED2 &info->reg_lock
HALF_LOCKED2 &sdev->request_queue->limits_lock
HALF_LOCKED2 &shost->scan_mutex
HALF_LOCKED2 _T->lock
HALF_LOCKED2 global &component_mutex
HALF_LOCKED2 global &iommu_probe_device_lock
HALF_LOCKED2 global &san_rqsg_if.lock
HALF_LOCKED2 global &system_transition_mutex

drivers/base/core.c device_link_add() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 0 link 4096-ptr_max
PARAM_VALUE 1 flags 128
CAPPED_DATA 0 link->consumer 1
CAPPED_DATA 0 &link->s_node 1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &device_links_lock
LOCK2 global &dpm_list_mtx
HALF_LOCKED2 &c->lock
HALF_LOCKED2 &card->mutex
HALF_LOCKED2 &dev->mutex
HALF_LOCKED2 &info->reg_lock
HALF_LOCKED2 &sdev->request_queue->limits_lock
HALF_LOCKED2 &shost->scan_mutex
HALF_LOCKED2 _T->lock
HALF_LOCKED2 global &component_mutex
HALF_LOCKED2 global &iommu_probe_device_lock
HALF_LOCKED2 global &san_rqsg_if.lock
HALF_LOCKED2 global &system_transition_mutex

drivers/base/core.c device_link_add() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 0 link 4096-ptr_max
PARAM_VALUE 0 link->flags 128-u32max
PARAM_VALUE 1 flags 1
CAPPED_DATA 0 link->consumer 1
CAPPED_DATA 0 &link->s_node 1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &device_links_lock
LOCK2 global &dpm_list_mtx
HALF_LOCKED2 &c->lock
HALF_LOCKED2 &card->mutex
HALF_LOCKED2 &dev->mutex
HALF_LOCKED2 &info->reg_lock
HALF_LOCKED2 &sdev->request_queue->limits_lock
HALF_LOCKED2 &shost->scan_mutex
HALF_LOCKED2 _T->lock
HALF_LOCKED2 global &component_mutex
HALF_LOCKED2 global &iommu_probe_device_lock
HALF_LOCKED2 global &san_rqsg_if.lock
HALF_LOCKED2 global &system_transition_mutex

drivers/base/core.c device_link_add() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 0 link 4096-ptr_max
PARAM_VALUE 1 flags 2
CAPPED_DATA 0 link->consumer 1
CAPPED_DATA 0 &link->s_node 1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &device_links_lock
LOCK2 global &dpm_list_mtx
HALF_LOCKED2 &c->lock
HALF_LOCKED2 &card->mutex
HALF_LOCKED2 &dev->mutex
HALF_LOCKED2 &info->reg_lock
HALF_LOCKED2 &sdev->request_queue->limits_lock
HALF_LOCKED2 &shost->scan_mutex
HALF_LOCKED2 _T->lock
HALF_LOCKED2 global &component_mutex
HALF_LOCKED2 global &iommu_probe_device_lock
HALF_LOCKED2 global &san_rqsg_if.lock
HALF_LOCKED2 global &system_transition_mutex

drivers/base/core.c device_link_add() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 0 link 4096-ptr_max
PARAM_VALUE 1 flags 64
CAPPED_DATA 0 link->consumer 1
CAPPED_DATA 0 &link->s_node 1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &device_links_lock
LOCK2 global &dpm_list_mtx
HALF_LOCKED2 &c->lock
HALF_LOCKED2 &card->mutex
HALF_LOCKED2 &dev->mutex
HALF_LOCKED2 &info->reg_lock
HALF_LOCKED2 &sdev->request_queue->limits_lock
HALF_LOCKED2 &shost->scan_mutex
HALF_LOCKED2 _T->lock
HALF_LOCKED2 global &component_mutex
HALF_LOCKED2 global &iommu_probe_device_lock
HALF_LOCKED2 global &san_rqsg_if.lock
HALF_LOCKED2 global &system_transition_mutex

drivers/base/core.c device_link_add() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 0 link 4096-ptr_max
PARAM_VALUE 1 flags 128
CAPPED_DATA 0 link->consumer 1
CAPPED_DATA 0 &link->s_node 1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &device_links_lock
LOCK2 global &dpm_list_mtx
HALF_LOCKED2 &c->lock
HALF_LOCKED2 &card->mutex
HALF_LOCKED2 &dev->mutex
HALF_LOCKED2 &info->reg_lock
HALF_LOCKED2 &sdev->request_queue->limits_lock
HALF_LOCKED2 &shost->scan_mutex
HALF_LOCKED2 _T->lock
HALF_LOCKED2 global &component_mutex
HALF_LOCKED2 global &iommu_probe_device_lock
HALF_LOCKED2 global &san_rqsg_if.lock
HALF_LOCKED2 global &system_transition_mutex

drivers/base/core.c device_link_put_kref() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 1 flags 1
BUF_SIZE 0 link (-1)-0,1768
BUF_SIZE 0 link (-1)-0,1768
DATA_SOURCE 0 link $0
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &device_links_lock
HALF_LOCKED2 &group->mutex
HALF_LOCKED2 _T->lock

drivers/base/core.c device_links_busy() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 0 link 4096-ptr_max
PARAM_VALUE 1 flags 64
CAPPED_DATA 0 &link->s_node 1
RX_PATH
TASK_NOT_RUNNING
LOCK2 &dev->mutex
LOCK2 global &device_links_lock
TYPE_LOCK (struct device)->mutex

drivers/base/core.c device_links_check_suppliers() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 0 link 4096-ptr_max
PARAM_VALUE 1 flags 64
CAPPED_DATA 0 &link->c_node 1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 _T->lock
LOCK2 global &device_links_lock
HALF_LOCKED2 &dev->mutex

drivers/base/core.c device_links_check_suppliers() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 0 link 4096-ptr_max
PARAM_VALUE 0 link->flags 64-u32max
PARAM_VALUE 1 flags 128
CAPPED_DATA 0 &link->c_node 1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 _T->lock
LOCK2 global &device_links_lock
HALF_LOCKED2 &dev->mutex

drivers/base/core.c device_links_check_suppliers() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 0 link 4096-ptr_max
PARAM_VALUE 0 link->flags 64-u32max
PARAM_VALUE 1 flags 256
CAPPED_DATA 0 &link->c_node 1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 _T->lock
LOCK2 global &device_links_lock
HALF_LOCKED2 &dev->mutex

drivers/base/core.c device_links_driver_bound() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 0 link 4096-ptr_max
PARAM_VALUE 1 flags 64
CAPPED_DATA 0 &link->s_node 1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &device_links_lock
HALF_LOCKED2 &dev->mutex
HALF_LOCKED2 &dev->parent->mutex

drivers/base/core.c device_links_driver_bound() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 0 link 4096-ptr_max
PARAM_VALUE 0 link->flags 64-u32max
PARAM_VALUE 1 flags 32
CAPPED_DATA 0 &link->s_node 1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &device_links_lock
HALF_LOCKED2 &dev->mutex
HALF_LOCKED2 &dev->parent->mutex

drivers/base/core.c device_links_driver_bound() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 0 link 4096-ptr_max
PARAM_VALUE 1 flags 64
CAPPED_DATA 0 &link->c_node 1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &device_links_lock
HALF_LOCKED2 &dev->mutex
HALF_LOCKED2 &dev->parent->mutex

drivers/base/core.c device_links_driver_bound() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 0 link 4096-ptr_max
PARAM_VALUE 0 link->flags 64-u32max
PARAM_VALUE 1 flags 128
CAPPED_DATA 0 &link->c_node 1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &device_links_lock
HALF_LOCKED2 &dev->mutex
HALF_LOCKED2 &dev->parent->mutex

drivers/base/core.c device_links_driver_bound() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 0 link 4096-ptr_max
PARAM_VALUE 0 link->flags 64-u32max
PARAM_VALUE 1 flags 256
CAPPED_DATA 0 &link->c_node 1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &device_links_lock
HALF_LOCKED2 &dev->mutex
HALF_LOCKED2 &dev->parent->mutex

drivers/base/core.c device_links_driver_cleanup() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 0 link 4096-ptr_max
PARAM_VALUE 1 flags 64
CAPPED_DATA 0 &link->s_node 1
RX_PATH
TASK_NOT_RUNNING
LOCK2 &dev->mutex
LOCK2 global &device_links_lock
TYPE_LOCK (struct device)->mutex

drivers/base/core.c device_links_driver_cleanup() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 0 link 4096-ptr_max
PARAM_VALUE 0 link->flags 64-u32max
PARAM_VALUE 1 flags 2
CAPPED_DATA 0 &link->s_node 1
RX_PATH
TASK_NOT_RUNNING
LOCK2 &dev->mutex
LOCK2 global &device_links_lock
TYPE_LOCK (struct device)->mutex

drivers/base/core.c device_links_driver_cleanup() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 0 link 4096-ptr_max
PARAM_VALUE 0 link->flags 64-u32max
PARAM_VALUE 1 flags 16
CAPPED_DATA 0 &link->s_node 1
RX_PATH
TASK_NOT_RUNNING
LOCK2 &dev->mutex
LOCK2 global &device_links_lock
TYPE_LOCK (struct device)->mutex

drivers/base/core.c device_links_force_bind() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 0 link 4096-ptr_max
PARAM_VALUE 1 flags 64
CAPPED_DATA 0 &link->c_node 1
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &device_links_lock
HALF_LOCKED2 &dev->mutex
HALF_LOCKED2 &dev->parent->mutex
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 global &gameport_mutex

drivers/base/core.c device_links_missing_supplier() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 0 link 4096-ptr_max
PARAM_VALUE 1 flags 128
CAPPED_DATA 0 &link->c_node 1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 _T->lock
LOCK2 global &device_links_lock
HALF_LOCKED2 &dev->mutex

drivers/base/core.c device_links_no_driver() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 0 link 4096-ptr_max
PARAM_VALUE 1 flags 64
CAPPED_DATA 0 &link->s_node 1
LOCK2 global &device_links_lock

drivers/base/core.c device_links_unbind_consumers() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 0 link 4096-ptr_max
PARAM_VALUE 1 flags 64
CAPPED_DATA 0 &link->s_node 1
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &device_links_lock

drivers/base/core.c device_links_unbind_consumers() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 0 link 4096-ptr_max
PARAM_VALUE 0 link->flags 64-u32max
PARAM_VALUE 1 flags 128
CAPPED_DATA 0 &link->s_node 1
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &device_links_lock

drivers/base/core.c fw_devlink_dev_sync_state() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 0 link 4096-ptr_max
PARAM_VALUE 1 flags 64
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &s->lock
HALF_LOCKED2 global &device_links_lock
HALF_LOCKED2 global &regulator_list_mutex

drivers/base/core.c fw_devlink_relax_link() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 0 link 4096-ptr_max
PARAM_VALUE 1 flags 256
DATA_SOURCE 0 link $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 global &device_links_lock

drivers/base/core.c runtime_pm_show() -> device_link_test()

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

drivers/base/core.c sync_state_only_show() -> device_link_test()

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

drivers/base/power/main.c device_prepare_smart_suspend() -> device_link_test()

Type Parameter Key Value
PARAM_VALUE 0 link 4096-ptr_max
PARAM_VALUE 1 flags 4
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &device_links_srcu
LOCK2 global &system_transition_mutex
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 global &device_hotplug_lock