Documented in 1 files:

Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

drivers/thunderbolt/tb.c tb_configure_asym() -> tb_switch_set_link_width()

Type Parameter Key Value
PARAM_VALUE 0 sw 4096-ptr_max
PARAM_VALUE 0 sw->is_unplugged 0
PARAM_VALUE 0 sw->tb->ctl->frame_pool->dev->cma_area->alloc_mutex.osq.tail.counter s32min-s32max
PARAM_VALUE 0 sw->tb->ctl->frame_pool->dev->dma_uses_io_tlb 1
PARAM_VALUE 0 sw->tb->ctl->frame_pool->dev->iommu->attach_deferred 0-1
PARAM_VALUE 0 sw->tb->ctl->frame_pool->lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 sw->tb->ctl->request_queue_lock.dep_map->name 0-255
PARAM_VALUE 0 sw->tb->ctl->request_queue_lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 sw->tb->ctl->request_queue_lock.first_waiter->list.prev->prev 5159360019465732096
PARAM_VALUE 0 sw->tb->ctl->request_queue_lock.first_waiter->task->blocked_on 0
PARAM_VALUE 0 sw->tb->ctl->request_queue_lock.first_waiter->task->usage.refs.counter s32min-s32max
PARAM_VALUE 0 sw->tb->ctl->tx->lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 width 4,8
FUZZY_MAX 1 width 8
PARAM_COMPARE 0 sw->link_width != $1
PARAM_COMPARE 1 width != $0->link_width
BIT_INFO 1 width 0x0,0xc
HARD_MAX 1 width 8
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &tb->lock
HALF_LOCKED2 &tb->lock
TYPE_LOCK (struct tb)->lock

drivers/thunderbolt/tb.c tb_configure_link() -> tb_switch_set_link_width()

Type Parameter Key Value
PARAM_VALUE 0 sw 4096-ptr_max
PARAM_VALUE 0 sw->dev.devres_head.next->next 4096-ptr_max
PARAM_VALUE 0 sw->dev.devres_head.prev->next 4096-ptr_max
PARAM_VALUE 0 sw->dev.devres_head.prev->prev 4096-ptr_max
PARAM_VALUE 0 sw->dev.dma_io_tlb_mem->dyn_alloc.data.counter 9007199250546704
PARAM_VALUE 0 sw->dev.dma_io_tlb_mem->dyn_alloc.entry.prev 1473117533515866344
PARAM_VALUE 0 sw->dev.dma_io_tlb_mem->dyn_alloc.func 1583282886040592384
PARAM_VALUE 0 sw->dev.dma_io_tlb_mem->pools.prev 1473117533515866320
PARAM_VALUE 0 sw->dev.dma_io_tlb_pools.next->next 4096-ptr_max
PARAM_VALUE 0 sw->dev.dma_io_tlb_pools.prev->next 4096-ptr_max
PARAM_VALUE 0 sw->dev.dma_io_tlb_pools.prev->prev 4096-ptr_max
PARAM_VALUE 0 sw->dev.dma_pools.next->next 4096-ptr_max
PARAM_VALUE 0 sw->dev.dma_pools.prev->next 4096-ptr_max
PARAM_VALUE 0 sw->dev.dma_pools.prev->prev 4096-ptr_max
PARAM_VALUE 0 sw->dev.flags 4096-ptr_max
PARAM_VALUE 0 sw->dev.links.consumers.next->next 4096-ptr_max
PARAM_VALUE 0 sw->dev.links.consumers.prev->next 4096-ptr_max
PARAM_VALUE 0 sw->dev.links.consumers.prev->prev 4096-ptr_max
PARAM_VALUE 0 sw->dev.links.defer_sync.next->next 4096-ptr_max
PARAM_VALUE 0 sw->dev.links.defer_sync.prev->next 4096-ptr_max
PARAM_VALUE 0 sw->dev.links.defer_sync.prev->prev 4096-ptr_max
PARAM_VALUE 0 sw->dev.links.suppliers.next->next 4096-ptr_max
PARAM_VALUE 0 sw->dev.links.suppliers.prev->next 4096-ptr_max
PARAM_VALUE 0 sw->dev.links.suppliers.prev->prev 4096-ptr_max
PARAM_VALUE 0 sw->dev.power.entry.next->next 4096-ptr_max
PARAM_VALUE 0 sw->dev.power.entry.prev->next 4096-ptr_max
PARAM_VALUE 0 sw->dev.power.entry.prev->prev 4096-ptr_max
PARAM_VALUE 0 sw->dev.power.wait_queue.head.next->next 4096-ptr_max
PARAM_VALUE 0 sw->dev.power.wait_queue.head.prev->next 4096-ptr_max
PARAM_VALUE 0 sw->dev.power.wait_queue.head.prev->prev 4096-ptr_max
PARAM_VALUE 0 sw->link_width 0-1
PARAM_VALUE 0 sw->tb->ctl 4096-ptr_max
PARAM_VALUE 0 sw->tb->ctl->frame_pool->dev->cma_area->alloc_mutex.osq.tail.counter s32min-s32max
PARAM_VALUE 0 sw->tb->ctl->frame_pool->dev->dma_uses_io_tlb 1
PARAM_VALUE 0 sw->tb->ctl->frame_pool->dev->iommu->attach_deferred 0-1
PARAM_VALUE 0 sw->tb->ctl->frame_pool->dev->iommu->pci_32bit_workaround 0-1
PARAM_VALUE 0 sw->tb->ctl->frame_pool->next_block->next_block 0
PARAM_VALUE 0 sw->tb->ctl->request_queue_lock->first_waiter->task->blocked_lock.owner (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 sw->tb->ctl->request_queue_lock.dep_map->name 0-255
PARAM_VALUE 0 sw->tb->ctl->request_queue_lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 sw->tb->ctl->request_queue_lock.first_waiter->task->blocked_lock.owner (-1)
PARAM_VALUE 0 sw->tb->ctl->request_queue_lock.first_waiter->task->blocked_lock.owner_cpu 4294967295
PARAM_VALUE 0 sw->tb->ctl->request_queue_lock.first_waiter->task->blocked_on 0
PARAM_VALUE 0 sw->tb->ctl->request_queue_lock.first_waiter->task->usage.refs.counter s32min-s32max
PARAM_VALUE 0 sw->tb->root_switch 0,4096-ptr_max
PARAM_VALUE 1 width 2
BUF_SIZE 0 sw 1968
DATA_SOURCE 0 sw $2
FUZZY_MAX 0 sw->link_width 1
HARD_MAX 0 sw->link_width 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &tb->lock

drivers/thunderbolt/tb.c tb_configure_sym() -> tb_switch_set_link_width()

Type Parameter Key Value
PARAM_VALUE 0 sw 4096-ptr_max
PARAM_VALUE 0 sw->is_unplugged 0
PARAM_VALUE 0 sw->link_width 3-u32max
PARAM_VALUE 1 width 2
FUZZY_MAX 0 sw->link_width 3
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &tb->lock

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

Type Parameter Key Value
PARAM_VALUE 0 sw 4096-ptr_max
PARAM_VALUE 0 sw->dev.power.wakeirq->status 0-4294967295
PARAM_VALUE 0 sw->is_unplugged 1
PARAM_VALUE 1 width 1
CAPPED_DATA 0 sw 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &tb->lock

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

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

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

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