Documented in 1 files:

Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 3 files:

Smatch caller information:

drivers/usb/dwc2/hcd_ddma.c dwc2_hcd_complete_xfer_ddma() -> dwc2_hcd_qh_unlink()

Type Parameter Key Value
PARAM_VALUE 0 hsotg 4096-ptr_max
PARAM_VALUE 0 hsotg->dev->dma_io_tlb_mem->can_grow 0-1
PARAM_VALUE 0 hsotg->free_hc_list.prev 4096-ptr_max
PARAM_VALUE 0 hsotg->free_hc_list.prev->next 4096-ptr_max
PARAM_VALUE 0 hsotg->free_hc_list.prev->next->next 4096-ptr_max
PARAM_VALUE 0 hsotg->hc_ptr_array 4096-ptr_max
PARAM_VALUE 0 hsotg->lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 qh 4096-ptr_max
PARAM_VALUE 1 qh->channel 0
PARAM_VALUE 1 qh->desc_list->buf 0
PARAM_VALUE 1 qh->desc_list->status 0
PARAM_VALUE 1 qh->ntd 0
CAPPED_DATA 1 &qh->qtd_list 1
DATA_SOURCE 0 hsotg $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 hsotg->unaligned_cache->object_size
LOCK2 0 &hsotg->lock
HALF_LOCKED2 &desc->request_mutex
HALF_LOCKED2 _T->lock
HALF_LOCKED2 flags
HALF_LOCKED2 irq
TYPE_LOCK (struct dwc2_hsotg)->lock

drivers/usb/dwc2/hcd_ddma.c dwc2_hcd_complete_xfer_ddma() -> dwc2_hcd_qh_unlink()

Type Parameter Key Value
PARAM_VALUE 0 hsotg 4096-ptr_max
PARAM_VALUE 0 hsotg->dev->dma_io_tlb_mem->can_grow 0-1
PARAM_VALUE 0 hsotg->free_hc_list.prev 4096-ptr_max
PARAM_VALUE 0 hsotg->free_hc_list.prev->next 4096-ptr_max
PARAM_VALUE 0 hsotg->free_hc_list.prev->next->next 4096-ptr_max
PARAM_VALUE 0 hsotg->hc_ptr_array 4096-ptr_max
PARAM_VALUE 0 hsotg->lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 qh 4096-ptr_max
PARAM_VALUE 1 qh->channel 0
PARAM_VALUE 1 qh->desc_list->buf 0
PARAM_VALUE 1 qh->desc_list->status 0
PARAM_VALUE 1 qh->ntd 0
DATA_SOURCE 0 hsotg $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 hsotg->unaligned_cache->object_size
LOCK2 0 &hsotg->lock
HALF_LOCKED2 &desc->request_mutex
HALF_LOCKED2 _T->lock
HALF_LOCKED2 flags
HALF_LOCKED2 irq
TYPE_LOCK (struct dwc2_hsotg)->lock

drivers/usb/dwc2/hcd_queue.c dwc2_hcd_qh_deactivate() -> dwc2_hcd_qh_unlink()

Type Parameter Key Value
PARAM_VALUE 0 hsotg 4096-ptr_max
PARAM_VALUE 0 hsotg->dev->dma_io_tlb_mem->can_grow 0-1
PARAM_VALUE 1 qh 4096-ptr_max
PARAM_VALUE 1 qh->channel 0,4096-ptr_max
PARAM_VALUE 1 qh->ep_type 0,2
DATA_SOURCE 0 hsotg $0
DATA_SOURCE 1 qh $1
FUZZY_MAX 1 qh->ep_type 2
BIT_INFO 1 qh->ep_type 0x0,0x2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 0 &hsotg->lock
HALF_LOCKED2 flags
HALF_LOCKED2 irq
TYPE_LOCK (struct dwc2_hsotg)->lock

drivers/usb/dwc2/hcd_queue.c dwc2_hcd_qh_deactivate() -> dwc2_hcd_qh_unlink()

Type Parameter Key Value
PARAM_VALUE 0 hsotg 4096-ptr_max
PARAM_VALUE 0 hsotg->dev->dma_io_tlb_mem->can_grow 0-1
PARAM_VALUE 1 qh 4096-ptr_max
PARAM_VALUE 1 qh->channel 0,4096-ptr_max
PARAM_VALUE 1 qh->ep_type 1,3-255
PARAM_VALUE 1 qh->qtd_list.next 4096-ptr_max
PARAM_VALUE 1 qh->start_active_frame 0-16383
CAPPED_DATA 1 &qh->qtd_list 1
DATA_SOURCE 0 hsotg $0
DATA_SOURCE 1 qh $1
PARAM_COMPARE 1 &qh->qtd_list == $1->qtd_list.next
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 0 &hsotg->lock
HALF_LOCKED2 flags
HALF_LOCKED2 irq
TYPE_LOCK (struct dwc2_hsotg)->lock

drivers/usb/dwc2/hcd.c _dwc2_hcd_urb_enqueue() -> dwc2_hcd_qh_unlink()

Type Parameter Key Value
PARAM_VALUE 0 hsotg 4096-ptr_max
PARAM_VALUE 0 hsotg->dev->dma_io_tlb_pools.next 4096-ptr_max
PARAM_VALUE 0 hsotg->dev->dma_io_tlb_pools.next->prev 4096-ptr_max
PARAM_VALUE 0 hsotg->dev->dma_io_tlb_pools.next->prev->prev 4096-ptr_max
PARAM_VALUE 0 hsotg->dev->dma_uses_io_tlb 1
PARAM_VALUE 0 hsotg->dev->iommu->pci_32bit_workaround 0-1
PARAM_VALUE 0 hsotg->frame_list 4096-ptr_max
PARAM_VALUE 0 hsotg->frame_list_sz 256
PARAM_VALUE 1 qh 4096-ptr_max
PARAM_VALUE 1 qh->data_toggle 0
PARAM_VALUE 1 qh->do_split 0-1
PARAM_VALUE 1 qh->dwc_tt 0,4096-ptr_max
PARAM_VALUE 1 qh->ep_is_in 0-1
PARAM_VALUE 1 qh->ep_type 0-3
PARAM_VALUE 1 qh->hsotg 4096-ptr_max
PARAM_VALUE 1 qh->maxp 0-2047
PARAM_VALUE 1 qh->maxp_mult 1-4
PARAM_VALUE 1 qh->qh_list_entry.next 4096-ptr_max
PARAM_VALUE 1 qh->qh_list_entry.next->next 4096-ptr_max
PARAM_VALUE 1 qh->qh_list_entry.prev 4096-ptr_max
PARAM_VALUE 1 qh->qh_list_entry.prev->next 4096-ptr_max
PARAM_VALUE 1 qh->qh_list_entry.prev->prev 4096-ptr_max
PARAM_VALUE 1 qh->qtd_list.next 4096-ptr_max
PARAM_VALUE 1 qh->qtd_list.next->next 4096-ptr_max
PARAM_VALUE 1 qh->qtd_list.prev 4096-ptr_max
PARAM_VALUE 1 qh->qtd_list.prev->next 4096-ptr_max
PARAM_VALUE 1 qh->qtd_list.prev->prev 4096-ptr_max
PARAM_VALUE 1 qh->unreserve_timer.entry.pprev 0
PARAM_VALUE 1 qh->unreserve_timer.lockdep_map->name 0-255
BUF_SIZE 1 qh 384
CAPPED_DATA 1 qh 1
DATA_SOURCE 0 hsotg r dwc2_hcd_to_hsotg
NOCHECK_CALL

drivers/usb/dwc2/hcd.c dwc2_hcd_endpoint_disable() -> dwc2_hcd_qh_unlink()

Type Parameter Key Value
PARAM_VALUE 1 qh 4096-ptr_max
BUF_SIZE 1 qh 40,48,56,80,104,128,152,384
BUF_SIZE 1 qh 40,48,56,80,104,128,152,384
CAPPED_DATA 1 &qh->qtd_list 1
DATA_SOURCE 0 hsotg $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 flags
LOCK2 0 &hsotg->lock
HALF_LOCKED2 &udev->dev.mutex
TYPE_LOCK (struct dwc2_hsotg)->lock

drivers/usb/dwc2/hcd.c dwc2_hcd_urb_dequeue() -> dwc2_hcd_qh_unlink()

Type Parameter Key Value
PARAM_VALUE 0 hsotg 4096-ptr_max
PARAM_VALUE 0 hsotg->params.dma_desc_enable 0
PARAM_VALUE 1 qh 4096-ptr_max
PARAM_VALUE 1 qh->qtd_list.next 4096-ptr_max
CAPPED_DATA 1 &qh->qtd_list 1
DATA_SOURCE 0 hsotg $0
PARAM_COMPARE 1 &qh->qtd_list == $1->qtd_list.next
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 flags
LOCK2 0 &hsotg->lock
HALF_LOCKED2 irq
TYPE_LOCK (struct dwc2_hsotg)->lock

drivers/usb/dwc2/hcd.c dwc2_qh_list_free() -> dwc2_hcd_qh_unlink()

Type Parameter Key Value
PARAM_VALUE 0 hsotg 4096-ptr_max
PARAM_VALUE 0 hsotg->dev->cma_area->nranges s32min-s32max
PARAM_VALUE 0 hsotg->dev->iommu->attach_deferred 0-1
PARAM_VALUE 0 hsotg->dev->iommu->pci_32bit_workaround 0-1
PARAM_VALUE 0 hsotg->dev->iommu_group->default_domain 0-s64max
PARAM_VALUE 0 hsotg->gadget.dev.iommu_group->owner_cnt 0-4294967295
PARAM_VALUE 0 hsotg->gadget.dev.kobj.parent->sd->attr.open->nr_mmapped 0-4294967295
PARAM_VALUE 0 hsotg->gadget.dev.kobj.release.wq->dfl_pwq 0-s64max
PARAM_VALUE 0 hsotg->gadget.dev.kobj.release.wq->saved_max_active s32min-s32max
PARAM_VALUE 0 hsotg->gadget.dev.kobj.release.wq->saved_min_active s32min-s32max
PARAM_VALUE 0 hsotg->gadget.dev.kobj.sd->attr.open->nr_mmapped 0-4294967295
PARAM_VALUE 0 hsotg->gadget.dev.p->dead 0-1
PARAM_VALUE 0 hsotg->gadget.dev.power.wakeirq->status 0-4294967295
PARAM_VALUE 0 hsotg->gadget.ops->check_config 0,9012681856618590208,9040537406478098432
PARAM_VALUE 0 hsotg->gadget.ops->func_wakeup 0,1816331159711162368
PARAM_VALUE 0 hsotg->gadget.ops->get_config_params 0,1316903506149052416
PARAM_VALUE 0 hsotg->gadget.ops->get_frame 0,4096-ptr_max
PARAM_VALUE 0 hsotg->gadget.ops->ioctl 0
PARAM_VALUE 0 hsotg->gadget.ops->match_ep 0,1081493593393348608,3086703389125824512,3820108288210141184,4328644506140205056,4828312465346342912,6578524699529871360
PARAM_VALUE 0 hsotg->gadget.ops->pullup 0,4096-ptr_max
PARAM_VALUE 0 hsotg->gadget.ops->set_remote_wakeup 0,2647822114700050432
PARAM_VALUE 0 hsotg->gadget.ops->set_selfpowered 0,4096-ptr_max
PARAM_VALUE 0 hsotg->gadget.ops->udc_async_callbacks 0,1448049023484911616,2015549697443422208,2146793626917576704,4524500951199457280
PARAM_VALUE 0 hsotg->gadget.ops->udc_set_speed 0,1542734469127135232,2790071794484871168,5559015547957567488,9144756937450549248
PARAM_VALUE 0 hsotg->gadget.ops->udc_set_ssp_rate 0,1769069889350402048
PARAM_VALUE 0 hsotg->gadget.ops->udc_start 0,4096-ptr_max
PARAM_VALUE 0 hsotg->gadget.ops->udc_stop 0,4096-ptr_max
PARAM_VALUE 0 hsotg->gadget.ops->vbus_draw 0,4096-ptr_max
PARAM_VALUE 0 hsotg->gadget.ops->vbus_session 0,4096-ptr_max
PARAM_VALUE 0 hsotg->gadget.ops->wakeup 0,4096-ptr_max
PARAM_VALUE 0 hsotg->phy->dev.power.wakeirq->status 0-4294967295
PARAM_VALUE 0 hsotg->priv 0,4096-ptr_max
PARAM_VALUE 0 hsotg->uphy 0,4096-u64max
PARAM_VALUE 0 hsotg->uphy->otg 0,4096-ptr_max
PARAM_VALUE 0 hsotg->uphy->otg->usb_phy->io_dev->power.wakeirq->status 0-4294967295
PARAM_VALUE 0 hsotg->wq_otg->flags 0-4294967295
PARAM_VALUE 0 hsotg->wq_otg->flush_color s32min-s32max
PARAM_VALUE 0 hsotg->wq_otg->nr_drainers s32min-s32max
PARAM_VALUE 0 hsotg->wq_otg->work_color s32min-s32max
PARAM_VALUE 0 hsotg->wq_otg->wq_dev 0-s64max
PARAM_VALUE 0 *hsotg->params.g_tx_fifo_size 0-4294967295
PARAM_VALUE 1 qh 4096-ptr_max
BUF_SIZE 0 hsotg s32min-(-1),1-s32max
BUF_SIZE 0 hsotg s32min-(-1),1-s32max
BUF_SIZE 0 hsotg->dev (-1),1616
BUF_SIZE 0 hsotg->frame_num_array (-1),2
BUF_SIZE 0 hsotg->irq s32min-(-1),1-s32max
BUF_SIZE 0 hsotg->last_frame_num_array (-1),2
BUF_SIZE 0 hsotg->status_buf (-1),64
BUF_SIZE 0 hsotg->usb33d s32min,(-1)-s32max
BUF_SIZE 0 hsotg->vbus_supply s32min,(-1)-s32max
BUF_SIZE 0 hsotg->wq_otg (-1),512,528-8720
CAPPED_DATA 1 &qh->qh_list_entry 1
DATA_SOURCE 0 hsotg $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 0 hsotg->fifo_mem 0-u16max
HOST_DATA 0 hsotg->gadget.dev.bus_dma_limit 0
HOST_DATA 0 hsotg->gadget.dev.coherent_dma_mask 0
HOST_DATA 0 hsotg->gadget.dev.devt 0
HOST_DATA 0 hsotg->gadget.dev.id 0
HOST_DATA 0 hsotg->gadget.dev.kobj.release.cpu 0
HOST_DATA 0 hsotg->gadget.dev.kobj.release.timer.expires 0
HOST_DATA 0 hsotg->gadget.dev.kobj.release.timer.flags 0
HOST_DATA 0 hsotg->gadget.dev.kobj.release.work.data.counter 0
HOST_DATA 0 hsotg->gadget.dev.kobj.uevent_suppress 0
HOST_DATA 0 hsotg->gadget.dev.mutex.osq.tail.counter 0
HOST_DATA 0 hsotg->gadget.dev.mutex.owner.counter 0
HOST_DATA 0 hsotg->gadget.dev.power.accounting_timestamp 0
HOST_DATA 0 hsotg->gadget.dev.power.active_time 0
HOST_DATA 0 hsotg->gadget.dev.power.async_suspend 0
HOST_DATA 0 hsotg->gadget.dev.power.autosuspend_delay 0
HOST_DATA 0 hsotg->gadget.dev.power.can_wakeup 0
HOST_DATA 0 hsotg->gadget.dev.power.detach_power_off 0
HOST_DATA 0 hsotg->gadget.dev.power.direct_complete 0
HOST_DATA 0 hsotg->gadget.dev.power.driver_flags 0
HOST_DATA 0 hsotg->gadget.dev.power.in_dpm_list 0
HOST_DATA 0 hsotg->gadget.dev.power.irq_safe 0
HOST_DATA 0 hsotg->gadget.dev.power.last_busy 0
HOST_DATA 0 hsotg->gadget.dev.power.links_count 0
HOST_DATA 0 hsotg->gadget.dev.power.may_skip_resume 0
HOST_DATA 0 hsotg->gadget.dev.power.memalloc_noio 0
HOST_DATA 0 hsotg->gadget.dev.power.must_resume 0
HOST_DATA 0 hsotg->gadget.dev.power.no_callbacks 0
HOST_DATA 0 hsotg->gadget.dev.power.no_pm 0
HOST_DATA 0 hsotg->gadget.dev.power.no_pm_callbacks 0
HOST_DATA 0 hsotg->gadget.dev.power.out_band_wakeup 0
HOST_DATA 0 hsotg->gadget.dev.power.power_state.event 0
HOST_DATA 0 hsotg->gadget.dev.power.smart_suspend 0
HOST_DATA 0 hsotg->gadget.dev.power.strict_midlayer 0
HOST_DATA 0 hsotg->gadget.dev.power.suspended_time 0
HOST_DATA 0 hsotg->gadget.dev.power.syscore 0
HOST_DATA 0 hsotg->gadget.dev.power.timer_autosuspends 0
HOST_DATA 0 hsotg->gadget.dev.power.use_autosuspend 0
HOST_DATA 0 hsotg->gadget.dev.power.work_in_progress 0
HOST_DATA 0 hsotg->gadget.dev.removable 0
HOST_DATA 0 hsotg->hw_params.acg_enable 0-1
HOST_DATA 0 hsotg->hw_params.arch 0-3[c]
HOST_DATA 0 hsotg->hw_params.dev_ep_dirs 0-u32max
HOST_DATA 0 hsotg->hw_params.dev_nperio_tx_fifo_size 0-u16max
HOST_DATA 0 hsotg->hw_params.dev_token_q_depth 0-31[c]
HOST_DATA 0 hsotg->hw_params.dma_desc_enable 0-1
HOST_DATA 0 hsotg->hw_params.en_multiple_tx_fifo 0-1
HOST_DATA 0 hsotg->hw_params.enable_dynamic_fifo 0-1
HOST_DATA 0 hsotg->hw_params.fs_phy_type 0-3[c]
HOST_DATA 0 hsotg->hw_params.hibernation 0-1
HOST_DATA 0 hsotg->hw_params.host_channels 1-16[c]
HOST_DATA 0 hsotg->hw_params.host_nperio_tx_fifo_size 0-u16max
HOST_DATA 0 hsotg->hw_params.host_perio_tx_fifo_size 0-u16max
HOST_DATA 0 hsotg->hw_params.host_perio_tx_q_depth 0,2-6[c]
HOST_DATA 0 hsotg->hw_params.hs_phy_type 0-3[c]
HOST_DATA 0 hsotg->hw_params.i2c_enable 0-1
HOST_DATA 0 hsotg->hw_params.ipg_isoc_en 0-1
HOST_DATA 0 hsotg->hw_params.lpm_mode 0-1
HOST_DATA 0 hsotg->hw_params.nperio_tx_q_depth 0,2-6[c]
HOST_DATA 0 hsotg->hw_params.num_dev_ep 0-15[c]
HOST_DATA 0 hsotg->hw_params.num_dev_in_eps 0-15[c]
HOST_DATA 0 hsotg->hw_params.num_dev_perio_in_ep 0-15[c]
HOST_DATA 0 hsotg->hw_params.op_mode 0-7[c]
HOST_DATA 0 hsotg->hw_params.power_optimized 0-1
HOST_DATA 0 hsotg->hw_params.rx_fifo_size 0-u16max[c]
HOST_DATA 0 hsotg->hw_params.service_interval_mode 0-1
HOST_DATA 0 hsotg->hw_params.snpsid 0-u32max
HOST_DATA 0 hsotg->hw_params.total_fifo_size 0-u16max
HOST_DATA 0 hsotg->hw_params.utmi_phy_data_width 0-1,3[c]
HOST_DATA 0 hsotg->params.g_dma 0-1
HOST_DATA 0 hsotg->params.g_dma_desc 0-1
HOST_DATA 0 hsotg->params.g_rx_fifo_size 0-u16max[c]
HOST_DATA 0 hsotg->params.host_channels 1-16[c]
HOST_DATA 0 hsotg->params.host_dma 0-1
HOST_DATA 0 hsotg->params.host_nperio_tx_fifo_size 0-u16max
HOST_DATA 0 hsotg->params.host_perio_tx_fifo_size 0-u16max
HOST_DATA 0 hsotg->params.host_rx_fifo_size 0-u16max[c]
HOST_DATA 0 hsotg->params.reload_ctl 0
UNITS 0 hsotg unit_byte
LOCK2 flags
LOCK2 0 &hsotg->lock
TYPE_LOCK (struct dwc2_hsotg)->lock