Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

drivers/net/ethernet/google/gve/gve_buffer_mgmt_dqo.c gve_free_buffer() -> gve_enqueue_buf_state()

Type Parameter Key Value
PARAM_VALUE 0 rx 4096-ptr_max
PARAM_VALUE 0 rx->dqo.buf_states 4096-ptr_max
PARAM_VALUE 1 list 4096-ptr_max
PARAM_VALUE 2 buf_state 4096-ptr_max
BUF_SIZE 0 rx->ctx.skb_head (-1)-s32max
BUF_SIZE 0 rx->ctx.skb_tail (-1)-s32max
CAPPED_DATA 2 buf_state->next 1
DATA_SOURCE 0 rx $0
DATA_SOURCE 2 buf_state $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 rx->ctx.skb_head->len
NO_OVERFLOW_SIMPLE 0 rx->ctx.skb_head->tail
NO_OVERFLOW_SIMPLE 0 rx->ctx.skb_tail->len
NO_OVERFLOW_SIMPLE 0 rx->ctx.skb_tail->tail
USER_PTR 0 rx->ctx.skb_head->data
USER_PTR 0 rx->ctx.skb_tail->data
HALF_LOCKED2 bh
HALF_LOCKED2 rcu_read

drivers/net/ethernet/google/gve/gve_buffer_mgmt_dqo.c gve_get_recycled_buf_state() -> gve_enqueue_buf_state()

Type Parameter Key Value
PARAM_VALUE 0 rx 4096-ptr_max
PARAM_VALUE 1 list 4096-ptr_max
PARAM_VALUE 2 buf_state 4096-ptr_max
PARAM_VALUE 2 buf_state->next s16min-(-2),0-s16max
DATA_SOURCE 0 rx $0
DATA_SOURCE 2 buf_state r gve_dequeue_buf_state
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 rx->ctx.skb_head->len
NO_OVERFLOW_SIMPLE 0 rx->ctx.skb_head->tail
NO_OVERFLOW_SIMPLE 0 rx->ctx.skb_tail->len
NO_OVERFLOW_SIMPLE 0 rx->ctx.skb_tail->tail
NO_OVERFLOW_SIMPLE 0 rx->xsk_pool->fq->ring->consumer

drivers/net/ethernet/google/gve/gve_buffer_mgmt_dqo.c gve_try_recycle_buf() -> gve_enqueue_buf_state()

Type Parameter Key Value
PARAM_VALUE 0 rx 4096-ptr_max
PARAM_VALUE 0 rx->dqo.buf_states 4096-ptr_max
PARAM_VALUE 1 list 4096-ptr_max
PARAM_VALUE 2 buf_state 4096-ptr_max
BUF_SIZE 0 rx->ctx.skb_head (-1)-s32max
BUF_SIZE 0 rx->ctx.skb_tail (-1)-s32max
CAPPED_DATA 0 rx->ctx.skb_head 1
CAPPED_DATA 2 buf_state->next 1
DATA_SOURCE 0 rx $1
DATA_SOURCE 2 buf_state $2
PARAM_COMPARE 2 buf_state->last_single_ref_offset != $2->page_info.page_offset
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 rx->ctx.skb_head->len
NO_OVERFLOW_SIMPLE 0 rx->ctx.skb_head->tail
NO_OVERFLOW_SIMPLE 0 rx->ctx.skb_tail->len
NO_OVERFLOW_SIMPLE 0 rx->ctx.skb_tail->tail
NO_OVERFLOW_SIMPLE 0 rx->rx_hsplit_bytes
USER_PTR 0 rx->ctx.skb_head->data
USER_PTR 0 rx->ctx.skb_tail->data
USER_PTR 0 rx->ctx.skb_tail->next->data
HALF_LOCKED2 bh
HALF_LOCKED2 rcu_read

drivers/net/ethernet/google/gve/gve_buffer_mgmt_dqo.c gve_try_recycle_buf() -> gve_enqueue_buf_state()

Type Parameter Key Value
PARAM_VALUE 0 rx 4096-ptr_max
PARAM_VALUE 0 rx->dqo.buf_states 4096-ptr_max
PARAM_VALUE 1 list 4096-ptr_max
PARAM_VALUE 2 buf_state 4096-ptr_max
BUF_SIZE 0 rx->ctx.skb_head (-1)-s32max
BUF_SIZE 0 rx->ctx.skb_tail (-1)-s32max
CAPPED_DATA 0 rx->ctx.skb_head 1
CAPPED_DATA 2 buf_state->next 1
DATA_SOURCE 0 rx $1
DATA_SOURCE 2 buf_state $2
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 rx->ctx.skb_head->len
NO_OVERFLOW_SIMPLE 0 rx->ctx.skb_head->tail
NO_OVERFLOW_SIMPLE 0 rx->ctx.skb_tail->len
NO_OVERFLOW_SIMPLE 0 rx->ctx.skb_tail->tail
NO_OVERFLOW_SIMPLE 0 rx->rx_hsplit_bytes
USER_PTR 0 rx->ctx.skb_head->data
USER_PTR 0 rx->ctx.skb_tail->data
USER_PTR 0 rx->ctx.skb_tail->next->data
HALF_LOCKED2 bh
HALF_LOCKED2 rcu_read

51e6ac3d6061642e gve_rx_copy_ondemand() -> gve_enqueue_buf_state()

Type Parameter Key Value
PARAM_VALUE 0 rx 4096-ptr_max
PARAM_VALUE 0 rx->dqo.buf_states 4096-ptr_max
PARAM_VALUE 1 list 4096-ptr_max
PARAM_VALUE 2 buf_state 4096-ptr_max
BUF_SIZE 0 rx->ctx.skb_head (-1)-s32max
BUF_SIZE 0 rx->ctx.skb_tail (-1)-s32max
CAPPED_DATA 0 rx->ctx.skb_head 1
CAPPED_DATA 2 buf_state->next 1
DATA_SOURCE 0 rx $0
DATA_SOURCE 2 buf_state $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 rx->ctx.skb_head->len
NO_OVERFLOW_SIMPLE 0 rx->ctx.skb_head->tail
NO_OVERFLOW_SIMPLE 0 rx->ctx.skb_tail->end
NO_OVERFLOW_SIMPLE 0 rx->ctx.skb_tail->len
NO_OVERFLOW_SIMPLE 0 rx->ctx.skb_tail->next->end
NO_OVERFLOW_SIMPLE 0 rx->ctx.skb_tail->tail
USER_PTR 0 rx->ctx.skb_head->data
USER_PTR 0 rx->ctx.skb_tail->data
USER_PTR 0 rx->ctx.skb_tail->next->data
HALF_LOCKED2 bh
HALF_LOCKED2 rcu_read