Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 4 files:

Smatch caller information:

net/core/datagram.c skb_recv_datagram() -> __skb_recv_datagram()

Type Parameter Key Value
PARAM_VALUE 0 sk->channel 0-u16max
PARAM_VALUE 1 sk_queue 4096-ptr_max
PARAM_VALUE 3 off 835323601777360896
PARAM_VALUE 3 *off 0
PARAM_VALUE 4 err 4096-ptr_max
DATA_SOURCE 0 sk $0
DATA_SOURCE 2 flags $1
DATA_SOURCE 4 err $2
RX_PATH
TASK_NOT_RUNNING
USER_DATA 2 flags 0-u32max
NO_OVERFLOW_SIMPLE 0 sk->sk_backlog.len
NO_OVERFLOW_SIMPLE 0 sk->sk_prot_creator->twsk_prot->twsk_slab->sheaf_capacity
NO_OVERFLOW_SIMPLE 0 sk->sk_receive_queue.prev->data_len
NO_OVERFLOW_SIMPLE 0 sk->sk_receive_queue.prev->end
NO_OVERFLOW_SIMPLE 0 sk->sk_receive_queue.prev->len
NO_OVERFLOW_SIMPLE 0 sk->sk_receive_queue.prev->next->data_len
NO_OVERFLOW_SIMPLE 0 sk->sk_receive_queue.prev->next->end
NO_OVERFLOW_SIMPLE 0 sk->sk_receive_queue.prev->next->len
NO_OVERFLOW_SIMPLE 0 sk->sk_receive_queue.prev->next->tail
NO_OVERFLOW_SIMPLE 0 sk->sk_receive_queue.prev->next->truesize
NO_OVERFLOW_SIMPLE 0 sk->sk_receive_queue.prev->tail
NO_OVERFLOW_SIMPLE 0 sk->sk_receive_queue.prev->truesize
NO_OVERFLOW_SIMPLE 0 sk->sk_write_queue.next->data_len
NO_OVERFLOW_SIMPLE 0 sk->sk_write_queue.next->end
NO_OVERFLOW_SIMPLE 0 sk->sk_write_queue.next->len
NO_OVERFLOW_SIMPLE 0 sk->sk_write_queue.next->prev->data_len
NO_OVERFLOW_SIMPLE 0 sk->sk_write_queue.next->prev->end
NO_OVERFLOW_SIMPLE 0 sk->sk_write_queue.next->prev->len
NO_OVERFLOW_SIMPLE 0 sk->sk_write_queue.next->prev->tail
NO_OVERFLOW_SIMPLE 0 sk->sk_write_queue.next->prev->truesize
NO_OVERFLOW_SIMPLE 0 sk->sk_write_queue.next->tail
NO_OVERFLOW_SIMPLE 0 sk->sk_write_queue.next->truesize
UNITS 0 sk unit_byte
HALF_LOCKED2 &u->iolock
HALF_LOCKED2 0 sk

net/xfrm/espintcp.c espintcp_recvmsg() -> __skb_recv_datagram()

Type Parameter Key Value
PARAM_VALUE 1 sk_queue 4096-ptr_max
PARAM_VALUE 3 off 2884922768122908672
PARAM_VALUE 3 *off 0
PARAM_VALUE 4 err 3340375851335933952
PARAM_VALUE 4 *err 0
DATA_SOURCE 0 sk $0
DATA_SOURCE 2 flags $3
RX_PATH
TASK_NOT_RUNNING
USER_DATA 2 flags 0-u32max
NO_OVERFLOW_SIMPLE 0 sk->sk_backlog.len
NO_OVERFLOW_SIMPLE 0 sk->sk_receive_queue.prev->end
NO_OVERFLOW_SIMPLE 0 sk->sk_receive_queue.prev->len
NO_OVERFLOW_SIMPLE 0 sk->sk_receive_queue.prev->next->end
NO_OVERFLOW_SIMPLE 0 sk->sk_receive_queue.prev->next->len
NO_OVERFLOW_SIMPLE 0 sk->sk_receive_queue.prev->next->tail
NO_OVERFLOW_SIMPLE 0 sk->sk_receive_queue.prev->next->truesize
NO_OVERFLOW_SIMPLE 0 sk->sk_receive_queue.prev->tail
NO_OVERFLOW_SIMPLE 0 sk->sk_receive_queue.prev->truesize
NO_OVERFLOW_SIMPLE 0 sk->sk_write_queue.next->end
NO_OVERFLOW_SIMPLE 0 sk->sk_write_queue.next->len
NO_OVERFLOW_SIMPLE 0 sk->sk_write_queue.next->prev->end
NO_OVERFLOW_SIMPLE 0 sk->sk_write_queue.next->prev->len
NO_OVERFLOW_SIMPLE 0 sk->sk_write_queue.next->prev->tail
NO_OVERFLOW_SIMPLE 0 sk->sk_write_queue.next->prev->truesize
NO_OVERFLOW_SIMPLE 0 sk->sk_write_queue.next->tail
NO_OVERFLOW_SIMPLE 0 sk->sk_write_queue.next->truesize
UNITS 0 sk unit_byte

net/vmw_vsock/virtio_transport_common.c virtio_transport_read_skb() -> __skb_recv_datagram()

Type Parameter Key Value
PARAM_VALUE 0 sk 4096-ptr_max
PARAM_VALUE 1 sk_queue 4096-ptr_max
PARAM_VALUE 2 flags 64
PARAM_VALUE 3 off 3357255753709056000
PARAM_VALUE 3 *off 0
PARAM_VALUE 4 err 5171784273637830656
BUF_SIZE 0 sk 1480
LOCK2 &vvs->rx_lock
LOCK2 bh
TYPE_LOCK (struct virtio_vsock_sock)->rx_lock

drivers/net/ovpn/tcp.c ovpn_tcp_recvmsg() -> __skb_recv_datagram()

Type Parameter Key Value
PARAM_VALUE 0 sk 4096-ptr_max
PARAM_VALUE 1 sk_queue 4096-ptr_max
PARAM_VALUE 3 off 7374506129347215360
PARAM_VALUE 4 err 249132253681164288
PARAM_VALUE 4 *err 0
CAPPED_DATA 0 sk->sk_user_data 1
DATA_SOURCE 0 sk $0
DATA_SOURCE 2 flags $3
RX_PATH
TASK_NOT_RUNNING
USER_DATA 2 flags 0-u32max
NO_OVERFLOW_SIMPLE 0 sk->sk_backlog.len
NO_OVERFLOW_SIMPLE 0 sk->sk_receive_queue.prev->end
NO_OVERFLOW_SIMPLE 0 sk->sk_receive_queue.prev->len
NO_OVERFLOW_SIMPLE 0 sk->sk_receive_queue.prev->next->end
NO_OVERFLOW_SIMPLE 0 sk->sk_receive_queue.prev->next->len
NO_OVERFLOW_SIMPLE 0 sk->sk_receive_queue.prev->next->tail
NO_OVERFLOW_SIMPLE 0 sk->sk_receive_queue.prev->next->truesize
NO_OVERFLOW_SIMPLE 0 sk->sk_receive_queue.prev->tail
NO_OVERFLOW_SIMPLE 0 sk->sk_receive_queue.prev->truesize
NO_OVERFLOW_SIMPLE 0 sk->sk_write_queue.next->end
NO_OVERFLOW_SIMPLE 0 sk->sk_write_queue.next->len
NO_OVERFLOW_SIMPLE 0 sk->sk_write_queue.next->prev->end
NO_OVERFLOW_SIMPLE 0 sk->sk_write_queue.next->prev->len
NO_OVERFLOW_SIMPLE 0 sk->sk_write_queue.next->prev->tail
NO_OVERFLOW_SIMPLE 0 sk->sk_write_queue.next->prev->truesize
NO_OVERFLOW_SIMPLE 0 sk->sk_write_queue.next->tail
NO_OVERFLOW_SIMPLE 0 sk->sk_write_queue.next->truesize
UNITS 0 sk unit_byte