Defined in 1 files as a function:

Referenced in 4 files:

Smatch caller information:

net/smc/smc_tx.c smc_wr_tx_link_hold() -> smc_link_sendable()

Type Parameter Key Value
PARAM_VALUE 0 lnk 1-u64max
DATA_SOURCE 0 lnk $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 0 lnk unit_byte
HALF_LOCKED2 sk

net/smc/smc_cdc.c smc_wr_tx_link_hold() -> smc_link_sendable()

Type Parameter Key Value
DATA_SOURCE 0 lnk $0
RX_PATH
TASK_NOT_RUNNING
UNITS 0 lnk unit_byte
HALF_LOCKED2 sk

net/smc/smc_wr.c smc_wr_tx_get_free_slot() -> smc_link_sendable()

Type Parameter Key Value
PARAM_VALUE 0 lnk 4096-ptr_max
DATA_SOURCE 0 lnk $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 lnk->max_recv_wr
NO_OVERFLOW_SIMPLE 0 lnk->max_send_wr
NO_OVERFLOW_SIMPLE 0 lnk->roce_pd->device->hw_stats_attr_index
NO_OVERFLOW_SIMPLE 0 lnk->roce_pd->device->num_comp_vectors
NO_OVERFLOW_SIMPLE 0 lnk->roce_pd->device->phys_port_cnt
NO_OVERFLOW_SIMPLE 0 lnk->wr_rx_buflen
UNITS 0 lnk unit_byte
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 0 &lnk->lgr->llc_conf_mutex

net/smc/smc_wr.c smc_wr_tx_get_free_slot() -> smc_link_sendable()

Type Parameter Key Value
PARAM_VALUE 0 lnk 4096-ptr_max
PARAM_VALUE 0 lnk->qp_attr.cur_qp_state 3
PARAM_VALUE 0 lnk->state 2-u32max
CAPPED_DATA 0 lnk->wr_tx_cnt 1
DATA_SOURCE 0 lnk $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 lnk->max_recv_wr
NO_OVERFLOW_SIMPLE 0 lnk->max_send_wr
NO_OVERFLOW_SIMPLE 0 lnk->roce_pd->device->hw_stats_attr_index
NO_OVERFLOW_SIMPLE 0 lnk->roce_pd->device->num_comp_vectors
NO_OVERFLOW_SIMPLE 0 lnk->roce_pd->device->phys_port_cnt
NO_OVERFLOW_SIMPLE 0 lnk->wr_rx_buflen
UNITS 0 lnk unit_byte
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 0 &lnk->lgr->llc_conf_mutex

net/smc/smc_wr.c smc_wr_tx_get_free_slot() -> smc_link_sendable()

Type Parameter Key Value
PARAM_VALUE 0 lnk 4096-ptr_max
PARAM_VALUE 0 lnk->qp_attr.cur_qp_state 3
PARAM_VALUE 0 lnk->state 2-u32max
CAPPED_DATA 0 lnk->wr_tx_cnt 1
DATA_SOURCE 0 lnk $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 lnk->max_recv_wr
NO_OVERFLOW_SIMPLE 0 lnk->max_send_wr
NO_OVERFLOW_SIMPLE 0 lnk->roce_pd->device->hw_stats_attr_index
NO_OVERFLOW_SIMPLE 0 lnk->roce_pd->device->num_comp_vectors
NO_OVERFLOW_SIMPLE 0 lnk->roce_pd->device->phys_port_cnt
NO_OVERFLOW_SIMPLE 0 lnk->wr_rx_buflen
UNITS 0 lnk unit_byte
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 0 &lnk->lgr->llc_conf_mutex

net/smc/smc_wr.c smc_wr_tx_get_free_slot_index() -> smc_link_sendable()

Type Parameter Key Value
PARAM_VALUE 0 lnk 4096-ptr_max
DATA_SOURCE 0 lnk $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 lnk->max_recv_wr
NO_OVERFLOW_SIMPLE 0 lnk->max_send_wr
NO_OVERFLOW_SIMPLE 0 lnk->roce_pd->device->hw_stats_attr_index
NO_OVERFLOW_SIMPLE 0 lnk->roce_pd->device->num_comp_vectors
NO_OVERFLOW_SIMPLE 0 lnk->roce_pd->device->phys_port_cnt
NO_OVERFLOW_SIMPLE 0 lnk->wr_rx_buflen
UNITS 0 lnk unit_byte
HALF_LOCKED2 0 &lnk->lgr->llc_conf_mutex

net/smc/smc_llc.c smc_llc_send_link_delete_all() -> smc_link_sendable()

Type Parameter Key Value
PARAM_VALUE 0 lnk 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &lgr->llc_conf_mutex

net/smc/smc_llc.c smc_wr_tx_link_hold() -> smc_link_sendable()

Type Parameter Key Value
DATA_SOURCE 0 lnk $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 lnk->max_recv_wr
NO_OVERFLOW_SIMPLE 0 lnk->max_send_wr
NO_OVERFLOW_SIMPLE 0 lnk->roce_pd->device->hw_stats_attr_index
NO_OVERFLOW_SIMPLE 0 lnk->roce_pd->device->num_comp_vectors
NO_OVERFLOW_SIMPLE 0 lnk->roce_pd->device->phys_port_cnt
NO_OVERFLOW_SIMPLE 0 lnk->wr_rx_buflen
UNITS 0 lnk unit_byte
HALF_LOCKED2 &lgr->llc_conf_mutex
HALF_LOCKED2 &lgr->rmbs_lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 0 &lnk->lgr->llc_conf_mutex

net/smc/smc_core.c smc_wr_tx_link_hold() -> smc_link_sendable()

Type Parameter Key Value
PARAM_VALUE 0 lnk 4096-ptr_max
DATA_SOURCE 0 lnk $0
HALF_LOCKED2 &lgr->llc_conf_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct smc_link_group)->llc_conf_mutex

net/smc/smc_core.c smcr_lgr_link_deactivate_all() -> smc_link_sendable()

Type Parameter Key Value
PARAM_VALUE 0 lnk 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING