Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

drivers/net/wireless/ath/ath9k/hif_usb.c __hif_usb_tx() -> ath9k_skb_queue_complete()

Type Parameter Key Value
PARAM_VALUE 0 hif_dev 4096-ptr_max
PARAM_VALUE 0 hif_dev->htc_handle 4096-ptr_max
PARAM_VALUE 0 hif_dev->htc_handle->drv_priv 0,4096-ptr_max
PARAM_VALUE 0 hif_dev->tx.tx_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 hif_dev->tx.tx_pending.prev 4096-ptr_max
PARAM_VALUE 0 hif_dev->tx.tx_pending.prev->next 4096-ptr_max
PARAM_VALUE 0 hif_dev->tx.tx_pending.prev->next->next 4096-ptr_max
PARAM_VALUE 0 hif_dev->udev 4096-ptr_max
PARAM_VALUE 1 queue 4096-ptr_max
PARAM_VALUE 1 queue->next 4096-ptr_max
PARAM_VALUE 1 queue->prev 4096-ptr_max
PARAM_VALUE 2 txok 0
BUF_SIZE 0 hif_dev s32min-(-1),1-s32max
BUF_SIZE 0 hif_dev s32min-(-1),1-s32max
CAPPED_DATA 0 &hif_dev->tx.tx_buf 1
CAPPED_DATA 0 &hif_dev->tx.tx_skb_queue 1
DATA_SOURCE 0 hif_dev $0
PARAM_COMPARE 0 &hif_dev->tx.tx_buf != $0->tx.tx_buf.next
BIT_INFO 0 hif_dev->tx.flags 0x0,0xfe
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 hif_dev unit_byte
LOCK2 0 &hif_dev->tx.tx_lock
HALF_LOCKED2 flags
TYPE_LOCK (struct hif_usb_tx)->tx_lock

drivers/net/wireless/ath/ath9k/hif_usb.c hif_usb_stop() -> ath9k_skb_queue_complete()

Type Parameter Key Value
PARAM_VALUE 1 queue 4096-ptr_max
PARAM_VALUE 2 txok 0
BUF_SIZE 0 hif_dev s32min-(-2),1-s32max
BUF_SIZE 0 hif_dev s32min-(-2),1-s32max
DATA_SOURCE 0 hif_dev $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &priv->mutex
LOCK2 flags
LOCK2 0 &hif_dev->tx.tx_lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct ath9k_htc_priv)->mutex
TYPE_LOCK (struct hif_usb_tx)->tx_lock

drivers/net/wireless/ath/ath9k/hif_usb.c hif_usb_tx_cb() -> ath9k_skb_queue_complete()

Type Parameter Key Value
PARAM_VALUE 0 hif_dev 1-u64max
PARAM_VALUE 1 queue 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 hif_dev unit_byte
HALF_LOCKED2 &pool->lock