Defined in 1 files as a prototype:
Defined in 1 files as a function:
Referenced in 2 files:
- drivers/net/ethernet/google/gve/gve_buffer_mgmt_dqo.c
- drivers/net/ethernet/google/gve/gve_rx_dqo.c, line 579
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 |