Defined in 2 files as a prototype:

Defined in 3 files as a function:

Referenced in 4 files:

Smatch caller information:

drivers/usb/host/ehci-hcd.c ehci_endpoint_disable() -> start_unlink_async()

Type Parameter Key Value
PARAM_VALUE 1 qh 4096-ptr_max
PARAM_VALUE 1 qh->hw 1-u64max
PARAM_VALUE 1 qh->qh_state 1
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
BIT_INFO 1 qh->unlink_reason 0x20,0xff
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 flags
LOCK2 0 &fotg210->lock
HALF_LOCKED2 &udev->dev.mutex
TYPE_LOCK (struct ehci_hcd)->lock

drivers/usb/host/ehci-hcd.c ehci_endpoint_reset() -> start_unlink_async()

Type Parameter Key Value
PARAM_VALUE 1 qh 4096-ptr_max
PARAM_VALUE 1 qh->ps.udev 4096-ptr_max
PARAM_VALUE 1 qh->qtd_list.next 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
PARAM_COMPARE 1 &qh->qtd_list == $1->qtd_list.next
BIT_INFO 1 qh->unlink_reason 0x20,0xff
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 flags
LOCK2 0 &fotg210->lock
HALF_LOCKED2 &udev->dev.mutex
TYPE_LOCK (struct ehci_hcd)->lock

drivers/usb/host/ehci-hcd.c ehci_urb_dequeue() -> start_unlink_async()

Type Parameter Key Value
PARAM_VALUE 1 qh 4096-ptr_max
PARAM_VALUE 1 qh->qh_state 1
BUF_SIZE 1 qh 8-s32max
BUF_SIZE 1 qh 8-s32max
BIT_INFO 1 qh->unlink_reason 0x20,0xff
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 flags
LOCK2 0 &fotg210->lock
HALF_LOCKED2 irq
TYPE_LOCK (struct ehci_hcd)->lock

drivers/usb/host/ehci-hcd.c scan_async() -> start_unlink_async()

Type Parameter Key Value
PARAM_VALUE 0 fotg210 4096-ptr_max
PARAM_VALUE 0 fotg210->async 4096-ptr_max
PARAM_VALUE 0 fotg210->need_rescan 0
PARAM_VALUE 0 fotg210->scanning 1
PARAM_VALUE 1 qh 4096-ptr_max
PARAM_VALUE 1 qh->dequeue_during_giveback 0
CAPPED_DATA 1 &qh->qtd_list 1
DATA_SOURCE 0 fotg210 $0
PARAM_COMPARE 1 &qh->qtd_list != $1->qtd_list.next
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 0 &fotg210->lock
HALF_LOCKED2 flags
HALF_LOCKED2 irq
TYPE_LOCK (struct ehci_hcd)->lock

drivers/usb/host/ehci-hcd.c unlink_empty_async() -> start_unlink_async()

Type Parameter Key Value
PARAM_VALUE 0 fotg210 4096-ptr_max
PARAM_VALUE 0 fotg210->async 4096-ptr_max
PARAM_VALUE 0 fotg210->async->qh_next.qh 4096-ptr_max
PARAM_VALUE 0 fotg210->async_unlink.next 4096-ptr_max
PARAM_VALUE 0 fotg210->hr_timeouts 4096-ptr_max
PARAM_VALUE 0 fotg210->next_hrtimer_event 0-11,99
PARAM_VALUE 1 qh 4096-ptr_max
PARAM_VALUE 1 qh->qh_state 1
PARAM_VALUE 1 qh->qtd_list.next 4096-ptr_max
CAPPED_DATA 0 &fotg210->async_unlink 1
DATA_SOURCE 0 fotg210 $0
FUZZY_MAX 0 fotg210->next_hrtimer_event 99
PARAM_COMPARE 0 &fotg210->async_unlink == $0->async_unlink.next
BIT_INFO 1 qh->unlink_reason 0x10,0xff
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 flags
LOCK2 0 &fotg210->lock
HALF_LOCKED2 irq
TYPE_LOCK (struct ehci_hcd)->lock

drivers/usb/fotg210/fotg210-hcd.c fotg210_endpoint_disable() -> start_unlink_async()

Type Parameter Key Value
PARAM_VALUE 0 fotg210 4096-ptr_max
PARAM_VALUE 0 fotg210->async 4096-ptr_max
PARAM_VALUE 0 fotg210->rh_state 2-u32max
PARAM_VALUE 1 qh 4096-ptr_max
PARAM_VALUE 1 qh->hw 1-u64max
PARAM_VALUE 1 qh->qh_state 1,5
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 1
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 flags
LOCK2 0 &fotg210->lock
HALF_LOCKED2 &udev->dev.mutex
TYPE_LOCK (struct fotg210_hcd)->lock

drivers/usb/fotg210/fotg210-hcd.c fotg210_endpoint_reset() -> start_unlink_async()

Type Parameter Key Value
PARAM_VALUE 1 qh 4096-ptr_max
PARAM_VALUE 1 qh->dev 4096-ptr_max
PARAM_VALUE 1 qh->qh_state 1,5
PARAM_VALUE 1 qh->qtd_list.next 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
FUZZY_MAX 1 qh->qh_state 5
PARAM_COMPARE 1 &qh->qtd_list == $1->qtd_list.next
BIT_INFO 1 qh->qh_state 0x1,0x5
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 flags
LOCK2 0 &fotg210->lock
HALF_LOCKED2 &udev->dev.mutex
TYPE_LOCK (struct fotg210_hcd)->lock

drivers/usb/fotg210/fotg210-hcd.c fotg210_urb_dequeue() -> start_unlink_async()

Type Parameter Key Value
PARAM_VALUE 1 qh 4096-ptr_max
PARAM_VALUE 1 qh->qh_state 1,5
BUF_SIZE 1 qh 8-s32max
BUF_SIZE 1 qh 8-s32max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 flags
LOCK2 0 &fotg210->lock
HALF_LOCKED2 irq
TYPE_LOCK (struct fotg210_hcd)->lock

drivers/usb/fotg210/fotg210-hcd.c scan_async() -> start_unlink_async()

Type Parameter Key Value
PARAM_VALUE 0 fotg210 4096-ptr_max
PARAM_VALUE 0 fotg210->async 4096-ptr_max
PARAM_VALUE 0 fotg210->need_rescan 0
PARAM_VALUE 0 fotg210->scanning 1
PARAM_VALUE 1 qh 4096-ptr_max
PARAM_VALUE 1 qh->needs_rescan 1
CAPPED_DATA 1 &qh->qtd_list 1
DATA_SOURCE 0 fotg210 $0
PARAM_COMPARE 1 &qh->qtd_list != $1->qtd_list.next
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 0 &fotg210->lock
HALF_LOCKED2 flags
HALF_LOCKED2 irq
TYPE_LOCK (struct fotg210_hcd)->lock

drivers/usb/host/oxu210hp-hcd.c end_unlink_async() -> start_unlink_async()

Type Parameter Key Value
PARAM_VALUE 0 fotg210 4096-ptr_max
PARAM_VALUE 0 fotg210->async 4096-ptr_max
PARAM_VALUE 0 fotg210->async->qh_next.qh->dummy->qtd_buffer_len 0,512-2048
PARAM_VALUE 0 fotg210->reclaim 0
PARAM_VALUE 0 *fotg210->reclaim->oxu->db_used 0-255
PARAM_VALUE 0 *fotg210->reclaim->oxu->qh_used 0-255
PARAM_VALUE 0 *fotg210->reclaim->oxu->qtd_used 0-255
PARAM_VALUE 1 qh 1-u64max
DATA_SOURCE 0 fotg210 $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 0 fotg210->actions 0-u64max
HOST_DATA 0 fotg210->bus_suspended 0-u64max
HOST_DATA 0 fotg210->command 0-u32max
HOST_DATA 0 fotg210->companion_ports 0-u64max
HOST_DATA 0 fotg210->hcs_params 0-u32max
HOST_DATA 0 fotg210->i_thresh 0-u32max
HOST_DATA 0 fotg210->is_otg 0-1
HOST_DATA 0 fotg210->next_statechange 0-u64max
HOST_DATA 0 fotg210->next_uframe s32min-s32max
HOST_DATA 0 fotg210->periodic_dma 0-u64max
HOST_DATA 0 fotg210->periodic_sched 0-u32max
HOST_DATA 0 fotg210->periodic_size 0-u32max
HOST_DATA 0 fotg210->sbrn 0-255
HOST_DATA 0 fotg210->scanning 0-1
HOST_DATA 0 fotg210->stamp 0-u32max
HOST_DATA 0 fotg210->urb_len 0-u32max
HOST_DATA 0 fotg210->urb_timer.expires 0-u64max
HOST_DATA 0 fotg210->urb_timer.flags 0-u32max
HOST_DATA 0 fotg210->watchdog.expires 0-u64max
HOST_DATA 0 fotg210->watchdog.flags 0-u32max
HALF_LOCKED2 flags
HALF_LOCKED2 0 &fotg210->lock

drivers/usb/host/oxu210hp-hcd.c oxu_watchdog() -> start_unlink_async()

Type Parameter Key Value
PARAM_VALUE 0 fotg210 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 flags
LOCK2 0 &fotg210->lock
TYPE_LOCK (struct oxu_hcd)->lock

drivers/usb/host/oxu210hp-hcd.c scan_async() -> start_unlink_async()

Type Parameter Key Value
PARAM_VALUE 0 fotg210 4096-ptr_max
PARAM_VALUE 0 fotg210->async 4096-ptr_max
PARAM_VALUE 0 fotg210->reclaim 0
PARAM_VALUE 0 fotg210->reclaim->dummy->qtd_buffer_len 0,512-2048
PARAM_VALUE 0 fotg210->scanning 1
PARAM_VALUE 0 fotg210->stamp 1-u32max
PARAM_VALUE 0 *fotg210->db_used 0-255
PARAM_VALUE 0 *fotg210->murb_used 0-255
PARAM_VALUE 0 *fotg210->qtd_used 0-255
PARAM_VALUE 0 *fotg210->reclaim->oxu->db_used 0-255
PARAM_VALUE 0 *fotg210->reclaim->oxu->qh_used 0-255
PARAM_VALUE 0 *fotg210->reclaim->oxu->qtd_used 0-255
PARAM_VALUE 1 qh 4096-ptr_max
PARAM_VALUE 1 qh->dummy->qtd_buffer_len 0,512-2048
PARAM_VALUE 1 qh->dummy->transfer_dma 0
PARAM_VALUE 1 qh->qh_state 1
PARAM_VALUE 1 qh->qtd_list.next 4096-ptr_max
PARAM_VALUE 1 *qh->oxu->db_used 0-255
PARAM_VALUE 1 *qh->oxu->qh_used 0-255
PARAM_VALUE 1 *qh->oxu->qtd_used 0-255
CAPPED_DATA 0 fotg210->async 1
CAPPED_DATA 0 fotg210->stamp 1
CAPPED_DATA 1 &qh->qtd_list 1
DATA_SOURCE 0 fotg210 $0
FUZZY_MAX 0 fotg210->stamp 1
PARAM_COMPARE 1 qh == $1
PARAM_COMPARE 1 &qh->qtd_list == $1->qtd_list.next
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 0 fotg210->actions 0-u64max
HOST_DATA 0 fotg210->bus_suspended 0-u64max
HOST_DATA 0 fotg210->command 0-u32max
HOST_DATA 0 fotg210->companion_ports 0-u64max
HOST_DATA 0 fotg210->hcs_params 0-u32max
HOST_DATA 0 fotg210->i_thresh 0-u32max
HOST_DATA 0 fotg210->is_otg 0-1
HOST_DATA 0 fotg210->next_statechange 0-u64max
HOST_DATA 0 fotg210->next_uframe s32min-s32max
HOST_DATA 0 fotg210->periodic_dma 0-u64max
HOST_DATA 0 fotg210->periodic_sched 0-u32max
HOST_DATA 0 fotg210->periodic_size 0-u32max
HOST_DATA 0 fotg210->reclaim_ready 0
HOST_DATA 0 fotg210->sbrn 0-255
HOST_DATA 0 fotg210->stamp 1-u32max[c]
HOST_DATA 0 fotg210->urb_len 0-u32max
HOST_DATA 0 fotg210->urb_timer.expires 0-u64max
HOST_DATA 0 fotg210->urb_timer.flags 0-u32max
LOCK2 0 &fotg210->lock
HALF_LOCKED2 flags
HALF_LOCKED2 irq
TYPE_LOCK (struct oxu_hcd)->lock

drivers/usb/host/oxu210hp-hcd.c unlink_async() -> start_unlink_async()

Type Parameter Key Value
PARAM_VALUE 0 fotg210 4096-ptr_max
PARAM_VALUE 0 fotg210->async->qh_next.qh->dummy->qtd_buffer_len 0,512-2048
PARAM_VALUE 0 fotg210->reclaim->dummy->qtd_buffer_len 0,512-2048
PARAM_VALUE 0 *fotg210->reclaim->oxu->db_used 0-255
PARAM_VALUE 0 *fotg210->reclaim->oxu->qh_used 0-255
PARAM_VALUE 0 *fotg210->reclaim->oxu->qtd_used 0-255
PARAM_VALUE 1 qh 4096-ptr_max
PARAM_VALUE 1 qh->dummy->qtd_buffer_len 0,512-2048
PARAM_VALUE 1 qh->dummy->transfer_dma 0
PARAM_VALUE 1 qh->qh_state 1
PARAM_VALUE 1 *qh->oxu->db_used 0-255
PARAM_VALUE 1 *qh->oxu->qh_used 0-255
PARAM_VALUE 1 *qh->oxu->qtd_used 0-255
BUF_SIZE 1 qh (-1),1-s32max
BUF_SIZE 1 qh (-1),1-s32max
CAPPED_DATA 1 qh 1
DATA_SOURCE 0 fotg210 $0
DATA_SOURCE 1 qh $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 0 fotg210->actions 0-u64max
HOST_DATA 0 fotg210->bus_suspended 0-u64max
HOST_DATA 0 fotg210->command 0-u32max
HOST_DATA 0 fotg210->companion_ports 0-u64max
HOST_DATA 0 fotg210->hcs_params 0-u32max
HOST_DATA 0 fotg210->i_thresh 0-u32max
HOST_DATA 0 fotg210->is_otg 0-1
HOST_DATA 0 fotg210->next_statechange 0-u64max
HOST_DATA 0 fotg210->next_uframe s32min-s32max
HOST_DATA 0 fotg210->periodic_dma 0-u64max
HOST_DATA 0 fotg210->periodic_sched 0-u32max
HOST_DATA 0 fotg210->periodic_size 0-u32max
HOST_DATA 0 fotg210->reclaim_ready 0
HOST_DATA 0 fotg210->sbrn 0-255
HOST_DATA 0 fotg210->scanning 0-1
HOST_DATA 0 fotg210->stamp 0-u32max
HOST_DATA 0 fotg210->urb_len 0-u32max
HOST_DATA 0 fotg210->urb_timer.expires 0-u64max
HOST_DATA 0 fotg210->urb_timer.flags 0-u32max
HOST_DATA 0 fotg210->watchdog.expires 0-u64max
HOST_DATA 0 fotg210->watchdog.flags 0-u32max
HOST_DATA 1 qh->stamp 1-u32max[c]
HALF_LOCKED2 flags
HALF_LOCKED2 0 &fotg210->lock