Defined in 1 files as a function:

Referenced in 7 files:

Smatch caller information:

net/core/datagram.c __skb_try_recv_datagram() -> sk_busy_loop()

Type Parameter Key Value
PARAM_VALUE 0 sk 4096-ptr_max
PARAM_VALUE 0 sk->channel 0-u16max
PARAM_VALUE 0 sk->sk_ll_usec 1-u32max
PARAM_VALUE 1 nonblock 0,64
BUF_SIZE 0 sk (-1),1480
BUF_SIZE 0 sk (-1),1480
DATA_SOURCE 0 sk $0
BIT_INFO 1 nonblock 0x0,0x40
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 1 nonblock 64[c]
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
HALF_LOCKED2 &u->iolock
HALF_LOCKED2 0 sk

net/ipv4/tcp.c tcp_recvmsg() -> sk_busy_loop()

Type Parameter Key Value
PARAM_VALUE 0 sk 4096-ptr_max
PARAM_VALUE 0 sk->__sk_common.skc_state 1
PARAM_VALUE 0 sk->sk_ll_usec 1-u32max
PARAM_VALUE 0 sk->sk_receive_queue.next 4096-ptr_max
PARAM_VALUE 1 nonblock 0,64
CAPPED_DATA 0 &sk->sk_receive_queue 1
DATA_SOURCE 0 sk $0
PARAM_COMPARE 0 &sk->sk_receive_queue == $0->sk_receive_queue.next
BIT_INFO 1 nonblock 0x0,0x40
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 1 nonblock 0,64[c]
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

net/sctp/socket.c sctp_recvmsg() -> sk_busy_loop()

Type Parameter Key Value
PARAM_VALUE 0 sk 4096-ptr_max
PARAM_VALUE 0 sk->sk_ll_usec 1-u32max
PARAM_VALUE 0 sk->sk_receive_queue.next 4096-ptr_max
PARAM_VALUE 1 nonblock 0,64
CAPPED_DATA 0 &sk->sk_receive_queue 1
DATA_SOURCE 0 sk $0
PARAM_COMPARE 0 &sk->sk_receive_queue == $0->sk_receive_queue.next
BIT_INFO 1 nonblock 0x0,0x40
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 1 nonblock 0,64[c]
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/ipv4/udp.c __skb_recv_udp() -> sk_busy_loop()

Type Parameter Key Value
PARAM_VALUE 0 sk 4096-ptr_max
PARAM_VALUE 0 sk->sk_ll_usec 1-u32max
PARAM_VALUE 0 sk->sk_receive_queue.next 4096-ptr_max
PARAM_VALUE 1 nonblock 0-1
DATA_SOURCE 0 sk $0
BIT_INFO 1 nonblock 0x0,0x40
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
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
HALF_LOCKED2 &transport->recv_mutex

net/socket.c sock_poll() -> sk_busy_loop()

Type Parameter Key Value
PARAM_VALUE 0 sk 4096-ptr_max
PARAM_VALUE 0 sk->sk_ll_usec 1-u32max
PARAM_VALUE 1 nonblock 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 sk unit_byte
HALF_LOCKED2 &kvm->irq_srcu
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &vm->irqfds_lock
HALF_LOCKED2 global &irqfds_srcu

net/xdp/xsk.c __xsk_recvmsg() -> sk_busy_loop()

Type Parameter Key Value
PARAM_VALUE 0 sk 4096-ptr_max
PARAM_VALUE 0 sk->dev->flags 1-u32max
PARAM_VALUE 0 sk->rx 1-u64max
PARAM_VALUE 0 sk->sk_ll_usec 1-u32max
PARAM_VALUE 0 sk->state 1
PARAM_VALUE 1 nonblock 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 sk->sk_backlog.len
UNITS 0 sk unit_byte
LOCK2 rcu_read
HALF_LOCKED2 &vq->mutex

net/xdp/xsk.c __xsk_sendmsg() -> sk_busy_loop()

Type Parameter Key Value
PARAM_VALUE 0 sk 4096-ptr_max
PARAM_VALUE 0 sk->dev->flags 1-u32max
PARAM_VALUE 0 sk->sk_ll_usec 1-u32max
PARAM_VALUE 0 sk->state 1
PARAM_VALUE 0 sk->tx 1-u64max
PARAM_VALUE 1 nonblock 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 sk->sk_backlog.len
UNITS 0 sk unit_byte
LOCK2 rcu_read
HALF_LOCKED2 &vq->mutex

drivers/nvme/host/tcp.c nvme_tcp_poll() -> sk_busy_loop()

Type Parameter Key Value
PARAM_VALUE 0 sk 4096-ptr_max
PARAM_VALUE 0 sk->sk_ll_usec 1-u32max
PARAM_VALUE 0 sk->sk_receive_queue.next 4096-ptr_max
PARAM_VALUE 1 nonblock 1
CAPPED_DATA 0 &sk->sk_receive_queue 1
PARAM_COMPARE 0 &sk->sk_receive_queue == $0->sk_receive_queue.next
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 sk unit_byte
HALF_LOCKED2 &ctx->uring_lock