Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

drivers/net/usb/cdc_ncm.c cdc_ncm_fill_tx_frame() -> cdc_ncm_tx_timeout_start()

Type Parameter Key Value
PARAM_VALUE 0 ctx 4096-ptr_max
PARAM_VALUE 0 ctx->timer_interval 1-u32max
PARAM_VALUE 0 ctx->tx_curr_frame_num 1-65534
PARAM_VALUE 0 ctx->tx_curr_skb 1-u64max
PARAM_VALUE 0 ctx->tx_curr_skb->data 4096-ptr_max
PARAM_VALUE 0 ctx->tx_max_datagrams 2-u16max
PARAM_VALUE 0 ctx->tx_rem_skb 0,4096-ptr_max
BUF_SIZE 0 ctx->tx_curr_skb (-1)-s32max
BUF_SIZE 0 ctx->tx_rem_skb (-1)-s32max
CAPPED_DATA 0 ctx->tx_max_datagrams 1
FUZZY_MAX 0 ctx->timer_interval 1
PREEMPT_ADD
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 0 ctx->tx_rem_skb->csum_offset 0-u16max
HOST_DATA 0 ctx->tx_rem_skb->data_len 0-2147483648[c]
HOST_DATA 0 ctx->tx_rem_skb->len 0-u32max[c]
HOST_DATA 0 ctx->tx_rem_skb->tstamp 500000002-4294967299794967295[c]
HOST_DATA 0 ctx->tx_rem_skb->users.refs.counter s32min-0,2-s32max
NO_OVERFLOW_SIMPLE 0 ctx->tx_curr_frame_payload
NO_OVERFLOW_SIMPLE 0 ctx->tx_curr_size
NO_OVERFLOW_SIMPLE 0 ctx->tx_rem_skb->data_len
NO_OVERFLOW_SIMPLE 0 ctx->tx_rem_skb->end
NO_OVERFLOW_SIMPLE 0 ctx->tx_rem_skb->len
NO_OVERFLOW_SIMPLE 0 ctx->tx_rem_skb->tail
NO_OVERFLOW_SIMPLE 0 ctx->tx_rem_skb->truesize
USER_PTR 0 ctx->tx_curr_skb->data
USER_PTR 0 ctx->tx_rem_skb->data
LOCK2 &ctx->mtx
LOCK2 bh
HALF_LOCKED2 &net->tx_global_lock
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &txq->_xmit_lock
HALF_LOCKED2 flags
HALF_LOCKED2 rcu_read
TYPE_LOCK (struct cdc_ncm_ctx)->mtx

drivers/net/usb/cdc_ncm.c cdc_ncm_txpath_bh() -> cdc_ncm_tx_timeout_start()

Type Parameter Key Value
PARAM_VALUE 0 ctx 4096-ptr_max
PARAM_VALUE 0 ctx->mtx.rlock.dep_map->name 0-255
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 0 &ctx->mtx
HALF_LOCKED2 bh
TYPE_LOCK (struct cdc_ncm_ctx)->mtx