Documented in 1 files:

Defined in 1 files as a function:

Referenced in 5 files:

Smatch caller information:

drivers/thunderbolt/switch.c tb_port_resume() -> tb_port_has_remote()

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

drivers/thunderbolt/switch.c tb_sw_set_unplugged() -> tb_port_has_remote()

Type Parameter Key Value
PARAM_VALUE 0 port 4096-ptr_max
CAPPED_DATA 0 port 1
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &tb->lock

drivers/thunderbolt/switch.c tb_switch_remove() -> tb_port_has_remote()

Type Parameter Key Value
PARAM_VALUE 0 port 4096-ptr_max
CAPPED_DATA 0 port 1
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &tb->lock

drivers/thunderbolt/switch.c tb_switch_resume() -> tb_port_has_remote()

Type Parameter Key Value
PARAM_VALUE 0 port 4096-ptr_max
PARAM_VALUE 0 port->sw 4096-ptr_max
CAPPED_DATA 0 port 1
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &tb->lock

drivers/thunderbolt/switch.c tb_switch_suspend() -> tb_port_has_remote()

Type Parameter Key Value
PARAM_VALUE 0 port 4096-ptr_max
CAPPED_DATA 0 port 1
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &tb->lock

drivers/thunderbolt/usb4_port.c link_show() -> tb_port_has_remote()

Type Parameter Key Value
PARAM_VALUE 0 port 4096-ptr_max
PARAM_VALUE 0 port->sw 4096-ptr_max
CAPPED_DATA 0 port 1
RX_PATH
TASK_NOT_RUNNING
LOCK2 &of->mutex
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/usb4_port.c offline_store() -> tb_port_has_remote()

Type Parameter Key Value
PARAM_VALUE 0 port 4096-ptr_max
PARAM_VALUE 0 port->sw 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &of->mutex
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/icm.c icm_free_unplugged_children() -> tb_port_has_remote()

Type Parameter Key Value
PARAM_VALUE 0 port 4096-ptr_max
CAPPED_DATA 0 port 1
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &tb->lock

drivers/thunderbolt/icm.c icm_unplug_children() -> tb_port_has_remote()

Type Parameter Key Value
PARAM_VALUE 0 port 4096-ptr_max
CAPPED_DATA 0 port 1
RX_PATH
TASK_NOT_RUNNING

drivers/thunderbolt/tb.c tb_create_usb3_tunnels() -> tb_port_has_remote()

Type Parameter Key Value
PARAM_VALUE 0 port 4096-ptr_max
CAPPED_DATA 0 port 1
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &tb->lock

drivers/thunderbolt/tb.c tb_free_unplugged_children() -> tb_port_has_remote()

Type Parameter Key Value
PARAM_VALUE 0 port 4096-ptr_max
CAPPED_DATA 0 port 1
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &tb->lock

drivers/thunderbolt/tb.c tb_handle_hotplug() -> tb_port_has_remote()

Type Parameter Key Value
PARAM_VALUE 0 port 4096-ptr_max
CAPPED_DATA 0 port 1
LOCK2 &tb->lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct tb)->lock

drivers/thunderbolt/tb.c tb_remove_dp_resources() -> tb_port_has_remote()

Type Parameter Key Value
PARAM_VALUE 0 port 4096-ptr_max
CAPPED_DATA 0 port 1
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &tb->lock

drivers/thunderbolt/tb.c tb_restore_children() -> tb_port_has_remote()

Type Parameter Key Value
PARAM_VALUE 0 port 4096-ptr_max
CAPPED_DATA 0 port 1
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &tb->lock

drivers/thunderbolt/tb.c tb_stop() -> tb_port_has_remote()

Type Parameter Key Value
PARAM_VALUE 0 port 4096-ptr_max
CAPPED_DATA 0 port 1
RX_PATH
TASK_NOT_RUNNING
LOCK2 &tb->lock
HALF_LOCKED2 &dev->mutex
TYPE_LOCK (struct tb)->lock

drivers/thunderbolt/tb.c tb_switch_discover_tunnels() -> tb_port_has_remote()

Type Parameter Key Value
PARAM_VALUE 0 port 4096-ptr_max
CAPPED_DATA 0 port 1
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &tb->lock

drivers/thunderbolt/xdomain.c switch_find_xdomain() -> tb_port_has_remote()

Type Parameter Key Value
PARAM_VALUE 0 port 4096-ptr_max
CAPPED_DATA 0 port 1
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &tb->lock