Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

drivers/net/usb/lan78xx.c lan78xx_submit_deferred_urbs() -> lan78xx_release_tx_buf()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->deferred.lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 dev->deferred.urb_list.next 4096-ptr_max
PARAM_VALUE 0 dev->dev_mutex.dep_map->name 0-255
PARAM_VALUE 0 dev->dev_mutex.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 dev->dev_mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 dev->dev_mutex.osq.tail.counter 0-s32max
PARAM_VALUE 0 dev->dev_mutex.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 dev->dev_mutex.wait_lock.owner (-1)
PARAM_VALUE 0 dev->dev_mutex.wait_lock.owner_cpu u32max
PARAM_VALUE 0 dev->net 4096-ptr_max
PARAM_VALUE 0 dev->txq.lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 dev->urb_intr 0,4096-ptr_max
PARAM_VALUE 0 *dev->net->name 0-255
BUF_SIZE 0 dev s32min-(-2),1-s32max
BUF_SIZE 0 dev s32min-(-2),1-s32max
BUF_SIZE 1 tx_buf s32min-(-2),1-s32max
BUF_SIZE 1 tx_buf s32min-(-2),1-s32max
CAPPED_DATA 0 dev->urb_intr 1
DATA_SOURCE 0 dev $0
PARAM_COMPARE 0 &dev->deferred.urb_list != $0->deferred.urb_list.next
BIT_INFO 0 dev->msg_enable 0x0,0xffffffff
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 dev->txq.prev->end
NO_OVERFLOW_SIMPLE 0 dev->txq.prev->len
NO_OVERFLOW_SIMPLE 0 dev->txq.prev->next->end
NO_OVERFLOW_SIMPLE 0 dev->txq.prev->next->len
NO_OVERFLOW_SIMPLE 0 dev->txq.prev->next->tail
NO_OVERFLOW_SIMPLE 0 dev->txq.prev->tail
NO_OVERFLOW_SIMPLE 0 dev->urb_intr->num_mapped_sgs
UNITS 0 dev unit_byte
UNITS 1 tx_buf unit_byte
LOCK2 irq
LOCK2 0 &dev->dev_mutex
LOCK2 0 &dev->txq.lock
TYPE_LOCK (struct lan78xx_net)->dev_mutex
TYPE_LOCK (struct sk_buff_head)->lock

drivers/net/usb/lan78xx.c lan78xx_submit_deferred_urbs() -> lan78xx_release_tx_buf()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->deferred.lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 dev->deferred.urb_list.next 4096-ptr_max
PARAM_VALUE 0 dev->dev_mutex.dep_map->name 0-255
PARAM_VALUE 0 dev->dev_mutex.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 dev->dev_mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 dev->dev_mutex.osq.tail.counter 0-s32max
PARAM_VALUE 0 dev->dev_mutex.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 dev->dev_mutex.wait_lock.owner (-1)
PARAM_VALUE 0 dev->dev_mutex.wait_lock.owner_cpu u32max
PARAM_VALUE 0 dev->net 4096-ptr_max
PARAM_VALUE 0 dev->txq.lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 dev->urb_intr 0,4096-ptr_max
PARAM_VALUE 0 *dev->net->name 0-255
BUF_SIZE 0 dev s32min-(-2),1-s32max
BUF_SIZE 0 dev s32min-(-2),1-s32max
BUF_SIZE 1 tx_buf s32min-(-2),1-s32max
BUF_SIZE 1 tx_buf s32min-(-2),1-s32max
CAPPED_DATA 0 dev->urb_intr 1
DATA_SOURCE 0 dev $0
PARAM_COMPARE 0 &dev->deferred.urb_list != $0->deferred.urb_list.next
BIT_INFO 0 dev->msg_enable 0x0,0xffffffff
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 dev->txq.prev->end
NO_OVERFLOW_SIMPLE 0 dev->txq.prev->len
NO_OVERFLOW_SIMPLE 0 dev->txq.prev->next->end
NO_OVERFLOW_SIMPLE 0 dev->txq.prev->next->len
NO_OVERFLOW_SIMPLE 0 dev->txq.prev->next->tail
NO_OVERFLOW_SIMPLE 0 dev->txq.prev->tail
NO_OVERFLOW_SIMPLE 0 dev->urb_intr->num_mapped_sgs
UNITS 0 dev unit_byte
UNITS 1 tx_buf unit_byte
LOCK2 irq
LOCK2 0 &dev->dev_mutex
LOCK2 0 &dev->txq.lock
TYPE_LOCK (struct lan78xx_net)->dev_mutex
TYPE_LOCK (struct sk_buff_head)->lock

drivers/net/usb/lan78xx.c lan78xx_tx_bh() -> lan78xx_release_tx_buf()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->intf 4096-ptr_max
PARAM_VALUE 0 dev->intf->dev.bus 0,4096-ptr_max
PARAM_VALUE 0 dev->intf->dev.class 0,4096-ptr_max
PARAM_VALUE 0 dev->intf->dev.power.wakeirq->status 0-4294967295
PARAM_VALUE 0 dev->intf->dev.type 0,4096-ptr_max
PARAM_VALUE 0 dev->net 4096-ptr_max
PARAM_VALUE 0 dev->net->tx_global_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 dev->rxq_done.lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 dev->rxq_done.next->prev 4096-ptr_max
PARAM_VALUE 0 dev->rxq_done.next->prev->next 4096-ptr_max
PARAM_VALUE 0 dev->rxq_done.prev 4096-ptr_max
PARAM_VALUE 0 dev->rxq_done.prev->next 4096-ptr_max
PARAM_VALUE 0 dev->txq.lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 *dev->net->name 0-255
PARAM_VALUE 1 tx_buf 4096-ptr_max
PARAM_VALUE 1 tx_buf->cb 4096-ptr_max
PARAM_VALUE 1 tx_buf->cb->num_of_packet s32min-s32max
PARAM_VALUE 1 tx_buf->data_len 0
CAPPED_DATA 0 dev->net->num_tx_queues 1
CAPPED_DATA 0 &dev->txq_pend 1
DATA_SOURCE 0 dev $0
DATA_SOURCE 1 tx_buf r lan78xx_get_tx_buf
PARAM_COMPARE 0 &dev->txq_free != $0->txq_free.next
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 dev->txq.prev->end
NO_OVERFLOW_SIMPLE 0 dev->txq.prev->len
NO_OVERFLOW_SIMPLE 0 dev->txq.prev->next->end
NO_OVERFLOW_SIMPLE 0 dev->txq.prev->next->len
NO_OVERFLOW_SIMPLE 0 dev->txq.prev->next->tail
NO_OVERFLOW_SIMPLE 0 dev->txq.prev->tail
HALF_LOCKED2 &ni->dev_lock
HALF_LOCKED2 bh
HALF_LOCKED2 rcu_read

drivers/net/usb/lan78xx.c tx_complete() -> lan78xx_release_tx_buf()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->intf->dev.power.runtime_status 0,2
PARAM_VALUE 0 dev->intf->dev.power.wakeirq->status 0-4294967295
PARAM_VALUE 0 dev->net 4096-ptr_max
PARAM_VALUE 0 dev->txq.lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 *dev->net->name 0-255
PARAM_VALUE 1 tx_buf 4096-ptr_max
PARAM_VALUE 1 tx_buf->cb 4096-ptr_max
PARAM_VALUE 1 tx_buf->cb->dev->intf->dev.power.runtime_status 0,2
PARAM_VALUE 1 tx_buf->cb->dev->intf->dev.power.wakeirq->status 0-4294967295
PARAM_VALUE 1 tx_buf->cb->dev->txq.lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 tx_buf->next 0
PARAM_VALUE 1 tx_buf->prev 0
BUF_SIZE 1 tx_buf s32min-(-1),1-s32max
BUF_SIZE 1 tx_buf s32min-(-1),1-s32max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 dev unit_byte
UNITS 1 tx_buf unit_byte
HALF_LOCKED2 &pool->lock