Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

drivers/usb/gadget/udc/cdns2/cdns2-gadget.c cdns2_gadget_ep_dequeue() -> cdns2_gadget_giveback()

Type Parameter Key Value
PARAM_VALUE 0 pep 4096-ptr_max
PARAM_VALUE 0 pep->endpoint.desc 1-u64max
PARAM_VALUE 1 preq 4096-ptr_max
PARAM_VALUE 2 status (-104)
CAPPED_DATA 0 &pep->pending_list 1
CAPPED_DATA 1 preq 1
BIT_INFO 0 pep->ep_state 0x1,0xffffffffffffffff
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 flags
LOCK2 0 &pep->pdev->lock
HALF_LOCKED2 &ctx->ctx_lock
HALF_LOCKED2 &epdata->dev->lock
HALF_LOCKED2 &epdata->lock
HALF_LOCKED2 &epfile->dmabufs_mutex
HALF_LOCKED2 &epfile->ffs->eps_lock
HALF_LOCKED2 &ffs->eps_lock
HALF_LOCKED2 &port->port_lock
HALF_LOCKED2 irq
TYPE_LOCK (struct cdns2_device)->lock

drivers/usb/gadget/udc/cdns2/cdns2-gadget.c cdns2_gadget_ep_disable() -> cdns2_gadget_giveback()

Type Parameter Key Value
PARAM_VALUE 0 pep 4096-ptr_max
PARAM_VALUE 0 pep->pdev 4096-ptr_max
PARAM_VALUE 0 pep->pdev->adma_regs 4096-ptr_max
PARAM_VALUE 1 preq 4096-ptr_max
PARAM_VALUE 2 status (-108)
CAPPED_DATA 0 &pep->pending_list 1
DATA_SOURCE 1 preq r cdns2_next_preq
PARAM_COMPARE 0 &pep->pending_list != $0->pending_list.next
BIT_INFO 0 pep->ep_state 0x1,0xffffffffffffffff
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &pdev->lock
LOCK2 flags
HALF_LOCKED2 &data->lock
HALF_LOCKED2 &dev->lock
HALF_LOCKED2 &ep->lock
HALF_LOCKED2 &func->ffs->eps_lock
HALF_LOCKED2 &port->lock
HALF_LOCKED2 flags
TYPE_LOCK (struct cdns2_device)->lock

drivers/usb/gadget/udc/cdns2/cdns2-gadget.c cdns2_gadget_ep_disable() -> cdns2_gadget_giveback()

Type Parameter Key Value
PARAM_VALUE 0 pep 4096-ptr_max
PARAM_VALUE 0 pep->pdev 4096-ptr_max
PARAM_VALUE 0 pep->pdev->adma_regs 4096-ptr_max
PARAM_VALUE 1 preq 4096-ptr_max
PARAM_VALUE 2 status (-108)
CAPPED_DATA 0 &pep->deferred_list 1
CAPPED_DATA 0 &pep->pending_list 1
DATA_SOURCE 1 preq r cdns2_next_preq
PARAM_COMPARE 0 &pep->deferred_list != $0->deferred_list.next
BIT_INFO 0 pep->ep_state 0x1,0xffffffffffffffff
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &pdev->lock
LOCK2 flags
HALF_LOCKED2 &data->lock
HALF_LOCKED2 &dev->lock
HALF_LOCKED2 &ep->lock
HALF_LOCKED2 &func->ffs->eps_lock
HALF_LOCKED2 &port->lock
HALF_LOCKED2 flags
TYPE_LOCK (struct cdns2_device)->lock

drivers/usb/gadget/udc/cdns2/cdns2-gadget.c cdns2_skip_isoc_td() -> cdns2_gadget_giveback()

Type Parameter Key Value
PARAM_VALUE 0 pep 4096-ptr_max
PARAM_VALUE 0 pep->pdev 4096-ptr_max
PARAM_VALUE 0 pep->pdev->adma_regs 4096-ptr_max
PARAM_VALUE 0 pep->skip 1
PARAM_VALUE 1 preq 4096-ptr_max
PARAM_VALUE 1 preq->list.next->next 4096-ptr_max
PARAM_VALUE 1 preq->list.next->prev 4096-ptr_max
PARAM_VALUE 1 preq->list.prev->next 4096-ptr_max
PARAM_VALUE 1 preq->list.prev->prev 4096-ptr_max
PARAM_VALUE 2 status 0
CAPPED_DATA 1 preq->num_of_trb 1
DATA_SOURCE 0 pep $1
DATA_SOURCE 1 preq $2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &pdev->lock
LOCK2 bh
LOCK2 flags
HALF_LOCKED2 _T->lock
TYPE_LOCK (struct cdns2_device)->lock

drivers/usb/gadget/udc/cdns2/cdns2-gadget.c cdns2_transfer_completed() -> cdns2_gadget_giveback()

Type Parameter Key Value
PARAM_VALUE 0 pep 4096-ptr_max
PARAM_VALUE 0 pep->pdev 4096-ptr_max
PARAM_VALUE 0 pep->pdev->adma_regs 4096-ptr_max
PARAM_VALUE 1 preq 4096-ptr_max
PARAM_VALUE 1 preq->list.next->prev 4096-ptr_max
PARAM_VALUE 1 preq->list.prev->next 4096-ptr_max
PARAM_VALUE 2 status 0
CAPPED_DATA 0 &pep->pending_list 1
CAPPED_DATA 1 preq->end_trb 1
CAPPED_DATA 1 preq->num_of_trb 1
DATA_SOURCE 0 pep $1
DATA_SOURCE 1 preq r cdns2_next_preq
PARAM_COMPARE 0 &pep->pending_list != $0->pending_list.next
PARAM_COMPARE 1 preq->end_trb <= $1->start_trb
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &pdev->lock
LOCK2 bh
LOCK2 flags
HALF_LOCKED2 _T->lock
TYPE_LOCK (struct cdns2_device)->lock

drivers/usb/gadget/udc/cdns2/cdns2-ep0.c cdns2_ep0_stall() -> cdns2_gadget_giveback()

Type Parameter Key Value
PARAM_VALUE 0 pep 4096-ptr_max
PARAM_VALUE 1 preq 4096-ptr_max
PARAM_VALUE 2 status (-104)
BUF_SIZE 0 pep 6200
BUF_SIZE 0 pep 6200
DATA_SOURCE 1 preq r cdns2_next_preq
PARAM_COMPARE 0 &pep->pending_list != $0->pending_list.next
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &pdev->lock
HALF_LOCKED2 bh
HALF_LOCKED2 flags
TYPE_LOCK (struct cdns2_device)->lock

drivers/usb/gadget/udc/cdns2/cdns2-ep0.c cdns2_handle_setup_packet() -> cdns2_gadget_giveback()

Type Parameter Key Value
PARAM_VALUE 0 pep 4096-ptr_max
PARAM_VALUE 0 pep->ep_state 0-4294967293
PARAM_VALUE 1 preq 4096-ptr_max
PARAM_VALUE 2 status (-104)
BUF_SIZE 0 pep 6200
BUF_SIZE 0 pep 6200
CAPPED_DATA 0 &pep->pending_list 1
DATA_SOURCE 1 preq r cdns2_next_preq
PARAM_COMPARE 0 &pep->pending_list != $0->pending_list.next
BIT_INFO 0 pep->ep_state 0x0,0xfffffffd
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &pdev->lock
LOCK2 bh
LOCK2 flags
HALF_LOCKED2 _T->lock
TYPE_LOCK (struct cdns2_device)->lock

drivers/usb/gadget/udc/cdns2/cdns2-ep0.c cdns2_transfer_completed() -> cdns2_gadget_giveback()

Type Parameter Key Value
PARAM_VALUE 0 pep 4096-ptr_max
PARAM_VALUE 0 pep->ring.trbs 4096-ptr_max
PARAM_VALUE 1 preq 4096-ptr_max
PARAM_VALUE 1 preq->request.actual 0-131071
PARAM_VALUE 2 status 0
BUF_SIZE 0 pep 6200
BUF_SIZE 0 pep 6200
CAPPED_DATA 0 &pep->pending_list 1
DATA_SOURCE 1 preq r cdns2_next_preq
PARAM_COMPARE 0 &pep->pending_list != $0->pending_list.next
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &pdev->lock
LOCK2 bh
LOCK2 flags
HALF_LOCKED2 _T->lock
TYPE_LOCK (struct cdns2_device)->lock