Lines Matching refs:sock
344 static bool vhost_sock_zcopy(struct socket *sock) in vhost_sock_zcopy() argument
347 sock_flag(sock->sk, SOCK_ZEROCOPY); in vhost_sock_zcopy()
350 static bool vhost_sock_xdp(struct socket *sock) in vhost_sock_xdp() argument
352 return sock_flag(sock->sk, SOCK_XDP); in vhost_sock_xdp()
447 struct socket *sock; in vhost_net_enable_vq() local
449 sock = vhost_vq_get_backend(vq); in vhost_net_enable_vq()
450 if (!sock) in vhost_net_enable_vq()
453 return vhost_poll_start(poll, sock->file); in vhost_net_enable_vq()
472 struct socket *sock, in vhost_tx_batch() argument
494 err = sock->ops->sendmsg(sock, msghdr, 0); in vhost_tx_batch()
514 static int sock_has_rx_data(struct socket *sock) in sock_has_rx_data() argument
516 if (unlikely(!sock)) in sock_has_rx_data()
519 if (sock->ops->peek_len) in sock_has_rx_data()
520 return sock->ops->peek_len(sock); in sock_has_rx_data()
522 return skb_queue_empty(&sock->sk->sk_receive_queue); in sock_has_rx_data()
544 struct socket *sock; in vhost_net_busy_poll() local
555 sock = vhost_vq_get_backend(rvq); in vhost_net_busy_poll()
569 if ((sock_has_rx_data(sock) && in vhost_net_busy_poll()
579 if (poll_rx || sock_has_rx_data(sock)) in vhost_net_busy_poll()
681 struct socket *sock = vhost_vq_get_backend(vq); in vhost_net_build_xdp() local
685 int headroom = vhost_sock_xdp(sock) ? XDP_PACKET_HEADROOM : 0; in vhost_net_build_xdp()
746 static void handle_tx_copy(struct vhost_net *net, struct socket *sock) in handle_tx_copy() argument
762 bool sock_can_batch = (sock->sk->sk_sndbuf == INT_MAX); in handle_tx_copy()
769 vhost_tx_batch(net, nvq, sock, &msg); in handle_tx_copy()
795 vhost_tx_batch(net, nvq, sock, &msg); in handle_tx_copy()
806 vhost_tx_batch(net, nvq, sock, &msg); in handle_tx_copy()
816 err = sock->ops->sendmsg(sock, &msg, len); in handle_tx_copy()
838 vhost_tx_batch(net, nvq, sock, &msg); in handle_tx_copy()
855 static void handle_tx_zerocopy(struct vhost_net *net, struct socket *sock) in handle_tx_zerocopy() argument
932 err = sock->ops->sendmsg(sock, &msg, len); in handle_tx_zerocopy()
968 struct socket *sock; in handle_tx() local
971 sock = vhost_vq_get_backend(vq); in handle_tx()
972 if (!sock) in handle_tx()
981 if (vhost_sock_zcopy(sock)) in handle_tx()
982 handle_tx_zerocopy(net, sock); in handle_tx()
984 handle_tx_copy(net, sock); in handle_tx()
990 static int peek_head_len(struct vhost_net_virtqueue *rvq, struct sock *sk) in peek_head_len()
1011 static int vhost_net_rx_peek_head_len(struct vhost_net *net, struct sock *sk, in vhost_net_rx_peek_head_len()
1151 struct socket *sock; in handle_rx() local
1157 sock = vhost_vq_get_backend(vq); in handle_rx()
1158 if (!sock) in handle_rx()
1177 sock_len = vhost_net_rx_peek_head_len(net, sock->sk, in handle_rx()
1210 err = sock->ops->recvmsg(sock, &msg, in handle_rx()
1224 err = sock->ops->recvmsg(sock, &msg, in handle_rx()
1383 struct socket *sock; in vhost_net_stop_vq() local
1388 sock = vhost_vq_get_backend(vq); in vhost_net_stop_vq()
1394 return sock; in vhost_net_stop_vq()
1451 struct socket *sock = sockfd_lookup(fd, &r); in get_raw_socket() local
1453 if (!sock) in get_raw_socket()
1457 if (sock->sk->sk_type != SOCK_RAW) { in get_raw_socket()
1462 if (sock->sk->sk_family != AF_PACKET) { in get_raw_socket()
1466 return sock; in get_raw_socket()
1468 sockfd_put(sock); in get_raw_socket()
1489 struct socket *sock; in get_tap_socket() local
1493 sock = tun_get_socket(file); in get_tap_socket()
1494 if (!IS_ERR(sock)) in get_tap_socket()
1495 return sock; in get_tap_socket()
1496 sock = tap_get_socket(file); in get_tap_socket()
1497 if (IS_ERR(sock)) in get_tap_socket()
1499 return sock; in get_tap_socket()
1504 struct socket *sock; in get_socket() local
1509 sock = get_raw_socket(fd); in get_socket()
1510 if (!IS_ERR(sock)) in get_socket()
1511 return sock; in get_socket()
1512 sock = get_tap_socket(fd); in get_socket()
1513 if (!IS_ERR(sock)) in get_socket()
1514 return sock; in get_socket()
1520 struct socket *sock, *oldsock; in vhost_net_set_backend() local
1547 sock = get_socket(fd); in vhost_net_set_backend()
1548 if (IS_ERR(sock)) { in vhost_net_set_backend()
1549 r = PTR_ERR(sock); in vhost_net_set_backend()
1555 if (sock != oldsock) { in vhost_net_set_backend()
1557 sock && vhost_sock_zcopy(sock)); in vhost_net_set_backend()
1564 vhost_vq_set_backend(vq, sock); in vhost_net_set_backend()
1573 if (sock) in vhost_net_set_backend()
1574 nvq->rx_ring = get_tap_ptr_ring(sock->file); in vhost_net_set_backend()
1610 if (sock) in vhost_net_set_backend()
1611 sockfd_put(sock); in vhost_net_set_backend()