Lines Matching refs:vvs

334 	struct virtio_vsock_sock *vvs;  in virtio_transport_send_pkt_info()  local
356 vvs = vsk->trans; in virtio_transport_send_pkt_info()
359 pkt_len = virtio_transport_get_credit(vvs, pkt_len); in virtio_transport_send_pkt_info()
412 virtio_transport_inc_tx_pkt(vvs, skb); in virtio_transport_send_pkt_info()
432 virtio_transport_put_credit(vvs, rest_len); in virtio_transport_send_pkt_info()
441 static bool virtio_transport_inc_rx_pkt(struct virtio_vsock_sock *vvs, in virtio_transport_inc_rx_pkt() argument
444 if (vvs->buf_used + len > vvs->buf_alloc) in virtio_transport_inc_rx_pkt()
447 vvs->rx_bytes += len; in virtio_transport_inc_rx_pkt()
448 vvs->buf_used += len; in virtio_transport_inc_rx_pkt()
452 static void virtio_transport_dec_rx_pkt(struct virtio_vsock_sock *vvs, in virtio_transport_dec_rx_pkt() argument
455 vvs->rx_bytes -= bytes_read; in virtio_transport_dec_rx_pkt()
456 vvs->buf_used -= bytes_dequeued; in virtio_transport_dec_rx_pkt()
457 vvs->fwd_cnt += bytes_dequeued; in virtio_transport_dec_rx_pkt()
460 void virtio_transport_inc_tx_pkt(struct virtio_vsock_sock *vvs, struct sk_buff *skb) in virtio_transport_inc_tx_pkt() argument
464 spin_lock_bh(&vvs->rx_lock); in virtio_transport_inc_tx_pkt()
465 vvs->last_fwd_cnt = vvs->fwd_cnt; in virtio_transport_inc_tx_pkt()
466 hdr->fwd_cnt = cpu_to_le32(vvs->fwd_cnt); in virtio_transport_inc_tx_pkt()
467 hdr->buf_alloc = cpu_to_le32(vvs->buf_alloc); in virtio_transport_inc_tx_pkt()
468 spin_unlock_bh(&vvs->rx_lock); in virtio_transport_inc_tx_pkt()
478 struct virtio_vsock_sock *vvs; in virtio_transport_consume_skb_sent() local
480 vvs = vs->trans; in virtio_transport_consume_skb_sent()
482 spin_lock_bh(&vvs->tx_lock); in virtio_transport_consume_skb_sent()
483 vvs->bytes_unsent -= skb->len; in virtio_transport_consume_skb_sent()
484 spin_unlock_bh(&vvs->tx_lock); in virtio_transport_consume_skb_sent()
492 u32 virtio_transport_get_credit(struct virtio_vsock_sock *vvs, u32 credit) in virtio_transport_get_credit() argument
499 spin_lock_bh(&vvs->tx_lock); in virtio_transport_get_credit()
500 ret = vvs->peer_buf_alloc - (vvs->tx_cnt - vvs->peer_fwd_cnt); in virtio_transport_get_credit()
503 vvs->tx_cnt += ret; in virtio_transport_get_credit()
504 vvs->bytes_unsent += ret; in virtio_transport_get_credit()
505 spin_unlock_bh(&vvs->tx_lock); in virtio_transport_get_credit()
511 void virtio_transport_put_credit(struct virtio_vsock_sock *vvs, u32 credit) in virtio_transport_put_credit() argument
516 spin_lock_bh(&vvs->tx_lock); in virtio_transport_put_credit()
517 vvs->tx_cnt -= credit; in virtio_transport_put_credit()
518 vvs->bytes_unsent -= credit; in virtio_transport_put_credit()
519 spin_unlock_bh(&vvs->tx_lock); in virtio_transport_put_credit()
538 struct virtio_vsock_sock *vvs = vsk->trans; in virtio_transport_stream_do_peek() local
543 spin_lock_bh(&vvs->rx_lock); in virtio_transport_stream_do_peek()
545 skb_queue_walk(&vvs->rx_queue, skb) { in virtio_transport_stream_do_peek()
552 spin_unlock_bh(&vvs->rx_lock); in virtio_transport_stream_do_peek()
564 spin_lock_bh(&vvs->rx_lock); in virtio_transport_stream_do_peek()
570 spin_unlock_bh(&vvs->rx_lock); in virtio_transport_stream_do_peek()
585 struct virtio_vsock_sock *vvs = vsk->trans; in virtio_transport_stream_do_dequeue() local
593 spin_lock_bh(&vvs->rx_lock); in virtio_transport_stream_do_dequeue()
595 if (WARN_ONCE(skb_queue_empty(&vvs->rx_queue) && vvs->rx_bytes, in virtio_transport_stream_do_dequeue()
597 spin_unlock_bh(&vvs->rx_lock); in virtio_transport_stream_do_dequeue()
601 while (total < len && !skb_queue_empty(&vvs->rx_queue)) { in virtio_transport_stream_do_dequeue()
604 skb = skb_peek(&vvs->rx_queue); in virtio_transport_stream_do_dequeue()
612 spin_unlock_bh(&vvs->rx_lock); in virtio_transport_stream_do_dequeue()
620 spin_lock_bh(&vvs->rx_lock); in virtio_transport_stream_do_dequeue()
628 __skb_unlink(skb, &vvs->rx_queue); in virtio_transport_stream_do_dequeue()
632 virtio_transport_dec_rx_pkt(vvs, bytes, dequeued); in virtio_transport_stream_do_dequeue()
635 fwd_cnt_delta = vvs->fwd_cnt - vvs->last_fwd_cnt; in virtio_transport_stream_do_dequeue()
636 free_space = vvs->buf_alloc - fwd_cnt_delta; in virtio_transport_stream_do_dequeue()
637 low_rx_bytes = (vvs->rx_bytes < in virtio_transport_stream_do_dequeue()
640 spin_unlock_bh(&vvs->rx_lock); in virtio_transport_stream_do_dequeue()
667 struct virtio_vsock_sock *vvs = vsk->trans; in virtio_transport_seqpacket_do_peek() local
671 spin_lock_bh(&vvs->rx_lock); in virtio_transport_seqpacket_do_peek()
673 if (!vvs->msg_count) { in virtio_transport_seqpacket_do_peek()
674 spin_unlock_bh(&vvs->rx_lock); in virtio_transport_seqpacket_do_peek()
681 skb_queue_walk(&vvs->rx_queue, skb) { in virtio_transport_seqpacket_do_peek()
692 spin_unlock_bh(&vvs->rx_lock); in virtio_transport_seqpacket_do_peek()
702 spin_lock_bh(&vvs->rx_lock); in virtio_transport_seqpacket_do_peek()
716 spin_unlock_bh(&vvs->rx_lock); in virtio_transport_seqpacket_do_peek()
725 struct virtio_vsock_sock *vvs = vsk->trans; in virtio_transport_seqpacket_do_dequeue() local
731 spin_lock_bh(&vvs->rx_lock); in virtio_transport_seqpacket_do_dequeue()
733 if (vvs->msg_count == 0) { in virtio_transport_seqpacket_do_dequeue()
734 spin_unlock_bh(&vvs->rx_lock); in virtio_transport_seqpacket_do_dequeue()
742 skb = __skb_dequeue(&vvs->rx_queue); in virtio_transport_seqpacket_do_dequeue()
759 spin_unlock_bh(&vvs->rx_lock); in virtio_transport_seqpacket_do_dequeue()
773 spin_lock_bh(&vvs->rx_lock); in virtio_transport_seqpacket_do_dequeue()
782 vvs->msg_count--; in virtio_transport_seqpacket_do_dequeue()
788 virtio_transport_dec_rx_pkt(vvs, pkt_len, pkt_len); in virtio_transport_seqpacket_do_dequeue()
792 spin_unlock_bh(&vvs->rx_lock); in virtio_transport_seqpacket_do_dequeue()
828 struct virtio_vsock_sock *vvs = vsk->trans; in virtio_transport_seqpacket_enqueue() local
830 spin_lock_bh(&vvs->tx_lock); in virtio_transport_seqpacket_enqueue()
832 if (len > vvs->peer_buf_alloc) { in virtio_transport_seqpacket_enqueue()
833 spin_unlock_bh(&vvs->tx_lock); in virtio_transport_seqpacket_enqueue()
837 spin_unlock_bh(&vvs->tx_lock); in virtio_transport_seqpacket_enqueue()
854 struct virtio_vsock_sock *vvs = vsk->trans; in virtio_transport_stream_has_data() local
857 spin_lock_bh(&vvs->rx_lock); in virtio_transport_stream_has_data()
858 bytes = vvs->rx_bytes; in virtio_transport_stream_has_data()
859 spin_unlock_bh(&vvs->rx_lock); in virtio_transport_stream_has_data()
867 struct virtio_vsock_sock *vvs = vsk->trans; in virtio_transport_seqpacket_has_data() local
870 spin_lock_bh(&vvs->rx_lock); in virtio_transport_seqpacket_has_data()
871 msg_count = vvs->msg_count; in virtio_transport_seqpacket_has_data()
872 spin_unlock_bh(&vvs->rx_lock); in virtio_transport_seqpacket_has_data()
880 struct virtio_vsock_sock *vvs = vsk->trans; in virtio_transport_has_space() local
883 bytes = (s64)vvs->peer_buf_alloc - (vvs->tx_cnt - vvs->peer_fwd_cnt); in virtio_transport_has_space()
892 struct virtio_vsock_sock *vvs = vsk->trans; in virtio_transport_stream_has_space() local
895 spin_lock_bh(&vvs->tx_lock); in virtio_transport_stream_has_space()
897 spin_unlock_bh(&vvs->tx_lock); in virtio_transport_stream_has_space()
906 struct virtio_vsock_sock *vvs; in virtio_transport_do_socket_init() local
908 vvs = kzalloc(sizeof(*vvs), GFP_KERNEL); in virtio_transport_do_socket_init()
909 if (!vvs) in virtio_transport_do_socket_init()
912 vsk->trans = vvs; in virtio_transport_do_socket_init()
913 vvs->vsk = vsk; in virtio_transport_do_socket_init()
917 vvs->peer_buf_alloc = ptrans->peer_buf_alloc; in virtio_transport_do_socket_init()
923 vvs->buf_alloc = vsk->buffer_size; in virtio_transport_do_socket_init()
925 spin_lock_init(&vvs->rx_lock); in virtio_transport_do_socket_init()
926 spin_lock_init(&vvs->tx_lock); in virtio_transport_do_socket_init()
927 skb_queue_head_init(&vvs->rx_queue); in virtio_transport_do_socket_init()
936 struct virtio_vsock_sock *vvs = vsk->trans; in virtio_transport_notify_buffer_size() local
941 vvs->buf_alloc = *val; in virtio_transport_notify_buffer_size()
1117 struct virtio_vsock_sock *vvs = vsk->trans; in virtio_transport_destruct() local
1121 kfree(vvs); in virtio_transport_destruct()
1128 struct virtio_vsock_sock *vvs = vsk->trans; in virtio_transport_unsent_bytes() local
1131 spin_lock_bh(&vvs->tx_lock); in virtio_transport_unsent_bytes()
1132 ret = vvs->bytes_unsent; in virtio_transport_unsent_bytes()
1133 spin_unlock_bh(&vvs->tx_lock); in virtio_transport_unsent_bytes()
1190 struct virtio_vsock_sock *vvs = vsk->trans; in virtio_transport_remove_sock() local
1195 __skb_queue_purge(&vvs->rx_queue); in virtio_transport_remove_sock()
1339 struct virtio_vsock_sock *vvs = vsk->trans; in virtio_transport_recv_enqueue() local
1347 spin_lock_bh(&vvs->rx_lock); in virtio_transport_recv_enqueue()
1349 can_enqueue = virtio_transport_inc_rx_pkt(vvs, len); in virtio_transport_recv_enqueue()
1356 vvs->msg_count++; in virtio_transport_recv_enqueue()
1362 if (len <= GOOD_COPY_LEN && !skb_queue_empty(&vvs->rx_queue)) { in virtio_transport_recv_enqueue()
1366 last_skb = skb_peek_tail(&vvs->rx_queue); in virtio_transport_recv_enqueue()
1385 __skb_queue_tail(&vvs->rx_queue, skb); in virtio_transport_recv_enqueue()
1388 spin_unlock_bh(&vvs->rx_lock); in virtio_transport_recv_enqueue()
1476 struct virtio_vsock_sock *vvs = vsk->trans; in virtio_transport_space_update() local
1484 if (!vvs) in virtio_transport_space_update()
1488 spin_lock_bh(&vvs->tx_lock); in virtio_transport_space_update()
1489 vvs->peer_buf_alloc = le32_to_cpu(hdr->buf_alloc); in virtio_transport_space_update()
1490 vvs->peer_fwd_cnt = le32_to_cpu(hdr->fwd_cnt); in virtio_transport_space_update()
1492 spin_unlock_bh(&vvs->tx_lock); in virtio_transport_space_update()
1721 struct virtio_vsock_sock *vvs = vsk->trans; in virtio_transport_read_skb() local
1729 spin_lock_bh(&vvs->rx_lock); in virtio_transport_read_skb()
1733 skb = __skb_recv_datagram(sk, &vvs->rx_queue, MSG_DONTWAIT, &off, &err); in virtio_transport_read_skb()
1735 spin_unlock_bh(&vvs->rx_lock); in virtio_transport_read_skb()
1741 vvs->msg_count--; in virtio_transport_read_skb()
1744 virtio_transport_dec_rx_pkt(vvs, pkt_len, pkt_len); in virtio_transport_read_skb()
1745 spin_unlock_bh(&vvs->rx_lock); in virtio_transport_read_skb()
1755 struct virtio_vsock_sock *vvs = vsk->trans; in virtio_transport_notify_set_rcvlowat() local
1758 spin_lock_bh(&vvs->rx_lock); in virtio_transport_notify_set_rcvlowat()
1766 send_update = (vvs->rx_bytes < val) && in virtio_transport_notify_set_rcvlowat()
1767 (vvs->fwd_cnt != vvs->last_fwd_cnt); in virtio_transport_notify_set_rcvlowat()
1769 spin_unlock_bh(&vvs->rx_lock); in virtio_transport_notify_set_rcvlowat()