Defined in 1 files as a function:

Referenced in 8 files:

Smatch caller information:

drivers/thunderbolt/usb4.c tb_switch_parent() -> tb_to_switch()

Type Parameter Key Value
BUF_SIZE 0 dev (-1),1616
BUF_SIZE 0 dev (-1),1616
RX_PATH
TASK_NOT_RUNNING
UNITS 0 dev unit_byte
HALF_LOCKED2 &tb->lock

drivers/thunderbolt/switch.c authorized_show() -> tb_to_switch()

Type Parameter Key Value
DATA_SOURCE 0 dev $0
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/thunderbolt/switch.c authorized_store() -> tb_to_switch()

Type Parameter Key Value
DATA_SOURCE 0 dev $0
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/thunderbolt/switch.c boot_show() -> tb_to_switch()

Type Parameter Key Value
DATA_SOURCE 0 dev $0
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/thunderbolt/switch.c device_name_show() -> tb_to_switch()

Type Parameter Key Value
DATA_SOURCE 0 dev $0
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/thunderbolt/switch.c device_show() -> tb_to_switch()

Type Parameter Key Value
DATA_SOURCE 0 dev $0
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/thunderbolt/switch.c disapprove_switch() -> tb_to_switch()

Type Parameter Key Value
PARAM_VALUE 0 dev 1-u64max
DATA_SOURCE 0 dev $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &sw->tb->lock

drivers/thunderbolt/switch.c generation_show() -> tb_to_switch()

Type Parameter Key Value
DATA_SOURCE 0 dev $0
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/thunderbolt/switch.c key_show() -> tb_to_switch()

Type Parameter Key Value
DATA_SOURCE 0 dev $0
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/thunderbolt/switch.c key_store() -> tb_to_switch()

Type Parameter Key Value
DATA_SOURCE 0 dev $0
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/thunderbolt/switch.c nvm_authenticate_show() -> tb_to_switch()

Type Parameter Key Value
DATA_SOURCE 0 dev $0
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/thunderbolt/switch.c nvm_authenticate_sysfs() -> tb_to_switch()

Type Parameter Key Value
DATA_SOURCE 0 dev $0
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/thunderbolt/switch.c nvm_read() -> tb_to_switch()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &of->mutex

drivers/thunderbolt/switch.c nvm_version_show() -> tb_to_switch()

Type Parameter Key Value
DATA_SOURCE 0 dev $0
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/thunderbolt/switch.c nvm_write() -> tb_to_switch()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &of->mutex

drivers/thunderbolt/switch.c rx_lanes_show() -> tb_to_switch()

Type Parameter Key Value
DATA_SOURCE 0 dev $0
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/thunderbolt/switch.c speed_show() -> tb_to_switch()

Type Parameter Key Value
DATA_SOURCE 0 dev $0
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/thunderbolt/switch.c switch_attr_is_visible() -> tb_to_switch()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING

drivers/thunderbolt/switch.c tb_switch_alloc() -> tb_to_switch()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
DATA_SOURCE 0 dev $1
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &tb->lock

drivers/thunderbolt/switch.c tb_switch_find_by_link_depth() -> tb_to_switch()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
DATA_SOURCE 0 dev r bus_find_device
LOCK2 &tb->lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct tb)->lock

drivers/thunderbolt/switch.c tb_switch_find_by_route() -> tb_to_switch()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
DATA_SOURCE 0 dev r bus_find_device
LOCK2 &tb->lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct tb)->lock

drivers/thunderbolt/switch.c tb_switch_find_by_uuid() -> tb_to_switch()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
DATA_SOURCE 0 dev r bus_find_device
LOCK2 &tb->lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct tb)->lock

drivers/thunderbolt/switch.c tb_switch_match() -> tb_to_switch()

Type Parameter Key Value
PARAM_VALUE 0 dev 1-u64max
DATA_SOURCE 0 dev $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &buffer->mutex
HALF_LOCKED2 &frag->frag_sem
HALF_LOCKED2 &generic_phy->mutex
HALF_LOCKED2 &ns->subsys->lock
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &pdev->dev.mutex
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &seq->lock
HALF_LOCKED2 &sfile->lock
HALF_LOCKED2 &tb->lock
HALF_LOCKED2 _T->lock
HALF_LOCKED2 global &component_mutex
HALF_LOCKED2 global &hmem_resource_lock
HALF_LOCKED2 global &iommu_probe_device_lock
HALF_LOCKED2 global &pi_mutex
HALF_LOCKED2 global &vdpa_dev_lock

drivers/thunderbolt/switch.c tb_switch_parent() -> tb_to_switch()

Type Parameter Key Value
BUF_SIZE 0 dev (-1),1616
BUF_SIZE 0 dev (-1),1616
RX_PATH
TASK_NOT_RUNNING
UNITS 0 dev unit_byte
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &sw->tb->lock
HALF_LOCKED2 &tb->lock

drivers/thunderbolt/switch.c tb_switch_release() -> tb_to_switch()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->type 4096-ptr_max
BUF_SIZE 0 dev (-1),1616
BUF_SIZE 0 dev (-1),1616
BUF_SIZE 0 dev->bus (-1),168
BUF_SIZE 0 dev->parent (-1),1616
BUF_SIZE 0 dev->type (-1),48
DATA_SOURCE 0 dev $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &subsys->su_mutex

drivers/thunderbolt/switch.c tb_switch_runtime_resume() -> tb_to_switch()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
DATA_SOURCE 0 dev $0

drivers/thunderbolt/switch.c tb_switch_runtime_suspend() -> tb_to_switch()

Type Parameter Key Value
DATA_SOURCE 0 dev $0

drivers/thunderbolt/switch.c tb_switch_uevent() -> tb_to_switch()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->type 4096-ptr_max
CAPPED_DATA 0 dev->of_node 1
DATA_SOURCE 0 dev $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &pool->lock

drivers/thunderbolt/switch.c tx_lanes_show() -> tb_to_switch()

Type Parameter Key Value
DATA_SOURCE 0 dev $0
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/thunderbolt/switch.c unique_id_show() -> tb_to_switch()

Type Parameter Key Value
DATA_SOURCE 0 dev $0
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/thunderbolt/switch.c vendor_name_show() -> tb_to_switch()

Type Parameter Key Value
DATA_SOURCE 0 dev $0
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/thunderbolt/switch.c vendor_show() -> tb_to_switch()

Type Parameter Key Value
DATA_SOURCE 0 dev $0
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/thunderbolt/icm.c complete_rpm() -> tb_to_switch()

Type Parameter Key Value
PARAM_VALUE 0 dev 1-u64max
DATA_SOURCE 0 dev $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &tb->lock

drivers/thunderbolt/icm.c remove_xdomain() -> tb_to_switch()

Type Parameter Key Value
UNITS 0 dev unit_byte
LOCK2 &tb->lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct tb)->lock

drivers/thunderbolt/icm.c tb_switch_parent() -> tb_to_switch()

Type Parameter Key Value
UNITS 0 dev unit_byte
LOCK2 &tb->lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct tb)->lock

drivers/thunderbolt/icm.c tb_xdomain_parent() -> tb_to_switch()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 dev unit_byte
HALF_LOCKED2 &attr->mutex
HALF_LOCKED2 &dt->lock

drivers/thunderbolt/tb.c __tb_disconnect_xdomain_paths() -> tb_to_switch()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 dev unit_byte
LOCK2 &tb->lock
TYPE_LOCK (struct tb)->lock

drivers/thunderbolt/tb.c tb_approve_xdomain_paths() -> tb_to_switch()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 dev unit_byte
HALF_LOCKED2 &attr->mutex
HALF_LOCKED2 &dt->lock

drivers/thunderbolt/tb.c tb_increase_switch_tmu_accuracy() -> tb_to_switch()

Type Parameter Key Value
PARAM_VALUE 0 dev 1-u64max
DATA_SOURCE 0 dev $0

drivers/thunderbolt/tb.c tb_scan_finalize_switch() -> tb_to_switch()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->type 4096-ptr_max
DATA_SOURCE 0 dev $0

drivers/thunderbolt/tb.c tb_switch_parent() -> tb_to_switch()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 dev unit_byte
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &sw->tb->lock
HALF_LOCKED2 &tb->lock

drivers/thunderbolt/tb.c tb_switch_tmu_hifi_uni_required() -> tb_to_switch()

Type Parameter Key Value
PARAM_VALUE 0 dev 1-u64max
DATA_SOURCE 0 dev $0

drivers/thunderbolt/xdomain.c tb_xdomain_alloc() -> tb_to_switch()

Type Parameter Key Value
PARAM_VALUE 0 dev 1-u64max
DATA_SOURCE 0 dev $1
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &tb->lock

drivers/thunderbolt/xdomain.c tb_xdomain_parent() -> tb_to_switch()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 dev unit_byte
HALF_LOCKED2 &attr->mutex
HALF_LOCKED2 &dt->lock
HALF_LOCKED2 &xd->lock

drivers/thunderbolt/acpi.c tb_acpi_find_companion() -> tb_to_switch()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->type 4096-ptr_max
CAPPED_DATA 0 dev 1
DATA_SOURCE 0 dev $0

drivers/thunderbolt/acpi.c tb_switch_parent() -> tb_to_switch()

Type Parameter Key Value
UNITS 0 dev unit_byte

drivers/thunderbolt/domain.c tb_domain_approve_switch() -> tb_to_switch()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 dev unit_byte
LOCK2 &of->mutex
LOCK2 &sw->tb->lock
LOCK2 &tb->lock
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct kernfs_open_file)->mutex
TYPE_LOCK (struct tb)->lock

drivers/thunderbolt/domain.c tb_domain_approve_switch_key() -> tb_to_switch()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 dev unit_byte
LOCK2 &of->mutex
LOCK2 &sw->tb->lock
LOCK2 &tb->lock
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct kernfs_open_file)->mutex
TYPE_LOCK (struct tb)->lock

drivers/thunderbolt/domain.c tb_domain_challenge_switch_key() -> tb_to_switch()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 dev unit_byte
LOCK2 &of->mutex
LOCK2 &sw->tb->lock
LOCK2 &tb->lock
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct kernfs_open_file)->mutex
TYPE_LOCK (struct tb)->lock

drivers/thunderbolt/tmu.c tb_switch_parent() -> tb_to_switch()

Type Parameter Key Value
BUF_SIZE 0 dev (-1),1616
BUF_SIZE 0 dev (-1),1616
RX_PATH
TASK_NOT_RUNNING
UNITS 0 dev unit_byte
HALF_LOCKED2 &tb->lock

drivers/thunderbolt/clx.c tb_switch_parent() -> tb_to_switch()

Type Parameter Key Value
BUF_SIZE 0 dev (-1),1616
BUF_SIZE 0 dev (-1),1616
RX_PATH
TASK_NOT_RUNNING
UNITS 0 dev unit_byte

drivers/thunderbolt/debugfs.c tb_switch_parent() -> tb_to_switch()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 dev unit_byte

drivers/thunderbolt/debugfs.c tb_xdomain_parent() -> tb_to_switch()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 dev unit_byte
HALF_LOCKED2 &pool->lock

drivers/thunderbolt/nvm.c asmedia_switch_nvm_version() -> tb_to_switch()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->type 1187824694584709120,3070551060236075008
BUF_SIZE 0 dev 1616
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &tb->lock

drivers/thunderbolt/nvm.c intel_switch_nvm_validate() -> tb_to_switch()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &of->mutex
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &rt->tb->lock
HALF_LOCKED2 &sw->tb->lock
TYPE_LOCK (struct kernfs_open_file)->mutex
TYPE_LOCK (struct tb)->lock

drivers/thunderbolt/nvm.c intel_switch_nvm_version() -> tb_to_switch()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->type 1187824694584709120,3070551060236075008
BUF_SIZE 0 dev 1616
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &tb->lock

drivers/thunderbolt/nvm.c intel_switch_nvm_write_headers() -> tb_to_switch()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &of->mutex
LOCK2 &sw->tb->lock
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct kernfs_open_file)->mutex
TYPE_LOCK (struct tb)->lock

drivers/thunderbolt/nvm.c tb_nvm_alloc() -> tb_to_switch()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->type 4096-ptr_max
DATA_SOURCE 0 dev $0
RX_PATH
TASK_NOT_RUNNING