Lines Matching refs:sock

33 #include <net/sock.h>
341 static bool vhost_sock_zcopy(struct socket *sock)
344 sock_flag(sock->sk, SOCK_ZEROCOPY);
347 static bool vhost_sock_xdp(struct socket *sock)
349 return sock_flag(sock->sk, SOCK_XDP);
443 struct socket *sock;
445 sock = vhost_vq_get_backend(vq);
446 if (!sock)
449 return vhost_poll_start(poll, sock->file);
466 struct socket *sock,
481 err = sock->ops->sendmsg(sock, msghdr, 0);
501 static int sock_has_rx_data(struct socket *sock)
503 if (unlikely(!sock))
506 if (sock->ops->peek_len)
507 return sock->ops->peek_len(sock);
509 return skb_queue_empty(&sock->sk->sk_receive_queue);
531 struct socket *sock;
542 sock = vhost_vq_get_backend(rvq);
556 if ((sock_has_rx_data(sock) &&
566 if (poll_rx || sock_has_rx_data(sock))
568 else if (!poll_rx) /* On tx here, sock has no rx data. */
668 struct socket *sock = vhost_vq_get_backend(vq);
673 int headroom = vhost_sock_xdp(sock) ? XDP_PACKET_HEADROOM : 0;
741 static void handle_tx_copy(struct vhost_net *net, struct socket *sock)
757 bool sock_can_batch = (sock->sk->sk_sndbuf == INT_MAX);
763 vhost_tx_batch(net, nvq, sock, &msg);
792 vhost_tx_batch(net, nvq, sock, &msg);
802 vhost_tx_batch(net, nvq, sock, &msg);
811 err = sock->ops->sendmsg(sock, &msg, len);
828 vhost_tx_batch(net, nvq, sock, &msg);
831 static void handle_tx_zerocopy(struct vhost_net *net, struct socket *sock)
908 err = sock->ops->sendmsg(sock, &msg, len);
944 struct socket *sock;
947 sock = vhost_vq_get_backend(vq);
948 if (!sock)
957 if (vhost_sock_zcopy(sock))
958 handle_tx_zerocopy(net, sock);
960 handle_tx_copy(net, sock);
966 static int peek_head_len(struct vhost_net_virtqueue *rvq, struct sock *sk)
987 static int vhost_net_rx_peek_head_len(struct vhost_net *net, struct sock *sk,
1110 struct socket *sock;
1116 sock = vhost_vq_get_backend(vq);
1117 if (!sock)
1134 sock_len = vhost_net_rx_peek_head_len(net, sock->sk,
1166 err = sock->ops->recvmsg(sock, &msg,
1180 err = sock->ops->recvmsg(sock, &msg,
1336 struct socket *sock;
1341 sock = vhost_vq_get_backend(vq);
1347 return sock;
1404 struct socket *sock = sockfd_lookup(fd, &r);
1406 if (!sock)
1410 if (sock->sk->sk_type != SOCK_RAW) {
1415 if (sock->sk->sk_family != AF_PACKET) {
1419 return sock;
1421 sockfd_put(sock);
1442 struct socket *sock;
1446 sock = tun_get_socket(file);
1447 if (!IS_ERR(sock))
1448 return sock;
1449 sock = tap_get_socket(file);
1450 if (IS_ERR(sock))
1452 return sock;
1457 struct socket *sock;
1462 sock = get_raw_socket(fd);
1463 if (!IS_ERR(sock))
1464 return sock;
1465 sock = get_tap_socket(fd);
1466 if (!IS_ERR(sock))
1467 return sock;
1473 struct socket *sock, *oldsock;
1500 sock = get_socket(fd);
1501 if (IS_ERR(sock)) {
1502 r = PTR_ERR(sock);
1508 if (sock != oldsock) {
1510 sock && vhost_sock_zcopy(sock));
1517 vhost_vq_set_backend(vq, sock);
1526 if (sock)
1527 nvq->rx_ring = get_tap_ptr_ring(sock->file);
1563 if (sock)
1564 sockfd_put(sock);