Defined in 2 files as a function:

Referenced in 2 files:

Smatch caller information:

drivers/vhost/net.c vhost_net_buf_peek_len() -> tun_is_xdp_frame()

Type Parameter Key Value
DATA_SOURCE 0 ptr $0
RX_PATH
TASK_NOT_RUNNING
LOCK2 &vq->mutex
TYPE_LOCK (struct vhost_virtqueue)->mutex

drivers/net/tun.c tun_do_read() -> tun_is_xdp_frame()

Type Parameter Key Value
PARAM_VALUE 0 ptr 1-u64max
BUF_SIZE 0 ptr (-1)-s32max
BUF_SIZE 0 ptr (-1)-s32max
DATA_SOURCE 0 ptr $4 [m]
RX_PATH
TASK_NOT_RUNNING

drivers/net/tun.c tun_ptr_free() -> tun_is_xdp_frame()

Type Parameter Key Value
PARAM_VALUE 0 ptr 1-u64max
BUF_SIZE 0 ptr (-1)-s32max
BUF_SIZE 0 ptr (-1)-s32max
DATA_SOURCE 0 ptr $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &r->consumer_lock
HALF_LOCKED2 &r->producer_lock
HALF_LOCKED2 &vq->mutex
HALF_LOCKED2 bh
HALF_LOCKED2 flags
HALF_LOCKED2 global &rtnl_mutex

drivers/net/tun.c tun_ptr_peek_len() -> tun_is_xdp_frame()

Type Parameter Key Value
PARAM_VALUE 0 ptr 1-u64max
BUF_SIZE 0 ptr (-1),1-s32max
BUF_SIZE 0 ptr (-1),1-s32max
DATA_SOURCE 0 ptr $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &(&tfile->tx_ring)->consumer_lock
HALF_LOCKED2 &vq->mutex