Lines Matching defs:sock
33 #include <net/sock.h>
342 static bool vhost_sock_zcopy(struct socket *sock)
345 sock_flag(sock->sk, SOCK_ZEROCOPY);
348 static bool vhost_sock_xdp(struct socket *sock)
350 return sock_flag(sock->sk, SOCK_XDP);
438 struct socket *sock;
440 sock = vhost_vq_get_backend(vq);
441 if (!sock)
444 return vhost_poll_start(poll, sock->file);
461 struct socket *sock,
476 err = sock->ops->sendmsg(sock, msghdr, 0);
496 static int sock_has_rx_data(struct socket *sock)
498 if (unlikely(!sock))
501 if (sock->ops->peek_len)
502 return sock->ops->peek_len(sock);
504 return skb_queue_empty(&sock->sk->sk_receive_queue);
526 struct socket *sock;
537 sock = vhost_vq_get_backend(rvq);
551 if ((sock_has_rx_data(sock) &&
561 if (poll_rx || sock_has_rx_data(sock))
563 else if (!poll_rx) /* On tx here, sock has no rx data. */
698 struct socket *sock = vhost_vq_get_backend(vq);
704 int headroom = vhost_sock_xdp(sock) ? XDP_PACKET_HEADROOM : 0;
768 static void handle_tx_copy(struct vhost_net *net, struct socket *sock)
784 bool sock_can_batch = (sock->sk->sk_sndbuf == INT_MAX);
790 vhost_tx_batch(net, nvq, sock, &msg);
819 vhost_tx_batch(net, nvq, sock, &msg);
829 vhost_tx_batch(net, nvq, sock, &msg);
839 err = sock->ops->sendmsg(sock, &msg, len);
854 vhost_tx_batch(net, nvq, sock, &msg);
857 static void handle_tx_zerocopy(struct vhost_net *net, struct socket *sock)
934 err = sock->ops->sendmsg(sock, &msg, len);
963 struct socket *sock;
966 sock = vhost_vq_get_backend(vq);
967 if (!sock)
976 if (vhost_sock_zcopy(sock))
977 handle_tx_zerocopy(net, sock);
979 handle_tx_copy(net, sock);
985 static int peek_head_len(struct vhost_net_virtqueue *rvq, struct sock *sk)
1006 static int vhost_net_rx_peek_head_len(struct vhost_net *net, struct sock *sk,
1129 struct socket *sock;
1135 sock = vhost_vq_get_backend(vq);
1136 if (!sock)
1153 sock_len = vhost_net_rx_peek_head_len(net, sock->sk,
1185 err = sock->ops->recvmsg(sock, &msg,
1199 err = sock->ops->recvmsg(sock, &msg,
1354 struct socket *sock;
1359 sock = vhost_vq_get_backend(vq);
1365 return sock;
1430 struct socket *sock = sockfd_lookup(fd, &r);
1432 if (!sock)
1436 if (sock->sk->sk_type != SOCK_RAW) {
1441 if (sock->sk->sk_family != AF_PACKET) {
1445 return sock;
1447 sockfd_put(sock);
1468 struct socket *sock;
1472 sock = tun_get_socket(file);
1473 if (!IS_ERR(sock))
1474 return sock;
1475 sock = tap_get_socket(file);
1476 if (IS_ERR(sock))
1478 return sock;
1483 struct socket *sock;
1488 sock = get_raw_socket(fd);
1489 if (!IS_ERR(sock))
1490 return sock;
1491 sock = get_tap_socket(fd);
1492 if (!IS_ERR(sock))
1493 return sock;
1499 struct socket *sock, *oldsock;
1526 sock = get_socket(fd);
1527 if (IS_ERR(sock)) {
1528 r = PTR_ERR(sock);
1534 if (sock != oldsock) {
1536 sock && vhost_sock_zcopy(sock));
1543 vhost_vq_set_backend(vq, sock);
1552 if (sock)
1553 nvq->rx_ring = get_tap_ptr_ring(sock->file);
1589 if (sock)
1590 sockfd_put(sock);