Lines Matching refs:pkt

102 		struct virtio_vsock_pkt *pkt;  in virtio_transport_send_pkt_work()  local
113 pkt = list_first_entry(&vsock->send_pkt_list, in virtio_transport_send_pkt_work()
115 list_del_init(&pkt->list); in virtio_transport_send_pkt_work()
118 virtio_transport_deliver_tap_pkt(pkt); in virtio_transport_send_pkt_work()
120 reply = pkt->reply; in virtio_transport_send_pkt_work()
122 sg_init_one(&hdr, &pkt->hdr, sizeof(pkt->hdr)); in virtio_transport_send_pkt_work()
124 if (pkt->buf) { in virtio_transport_send_pkt_work()
125 sg_init_one(&buf, pkt->buf, pkt->len); in virtio_transport_send_pkt_work()
129 ret = virtqueue_add_sgs(vq, sgs, out_sg, in_sg, pkt, GFP_KERNEL); in virtio_transport_send_pkt_work()
135 list_add(&pkt->list, &vsock->send_pkt_list); in virtio_transport_send_pkt_work()
165 virtio_transport_send_pkt(struct virtio_vsock_pkt *pkt) in virtio_transport_send_pkt() argument
168 int len = pkt->len; in virtio_transport_send_pkt()
173 virtio_transport_free_pkt(pkt); in virtio_transport_send_pkt()
178 if (le64_to_cpu(pkt->hdr.dst_cid) == vsock->guest_cid) { in virtio_transport_send_pkt()
179 virtio_transport_free_pkt(pkt); in virtio_transport_send_pkt()
184 if (pkt->reply) in virtio_transport_send_pkt()
188 list_add_tail(&pkt->list, &vsock->send_pkt_list); in virtio_transport_send_pkt()
202 struct virtio_vsock_pkt *pkt, *n; in virtio_transport_cancel_pkt() local
214 list_for_each_entry_safe(pkt, n, &vsock->send_pkt_list, list) { in virtio_transport_cancel_pkt()
215 if (pkt->vsk != vsk) in virtio_transport_cancel_pkt()
217 list_move(&pkt->list, &freeme); in virtio_transport_cancel_pkt()
221 list_for_each_entry_safe(pkt, n, &freeme, list) { in virtio_transport_cancel_pkt()
222 if (pkt->reply) in virtio_transport_cancel_pkt()
224 list_del(&pkt->list); in virtio_transport_cancel_pkt()
225 virtio_transport_free_pkt(pkt); in virtio_transport_cancel_pkt()
248 struct virtio_vsock_pkt *pkt; in virtio_vsock_rx_fill() local
256 pkt = kzalloc(sizeof(*pkt), GFP_KERNEL); in virtio_vsock_rx_fill()
257 if (!pkt) in virtio_vsock_rx_fill()
260 pkt->buf = kmalloc(buf_len, GFP_KERNEL); in virtio_vsock_rx_fill()
261 if (!pkt->buf) { in virtio_vsock_rx_fill()
262 virtio_transport_free_pkt(pkt); in virtio_vsock_rx_fill()
266 pkt->buf_len = buf_len; in virtio_vsock_rx_fill()
267 pkt->len = buf_len; in virtio_vsock_rx_fill()
269 sg_init_one(&hdr, &pkt->hdr, sizeof(pkt->hdr)); in virtio_vsock_rx_fill()
272 sg_init_one(&buf, pkt->buf, buf_len); in virtio_vsock_rx_fill()
274 ret = virtqueue_add_sgs(vq, sgs, 0, 2, pkt, GFP_KERNEL); in virtio_vsock_rx_fill()
276 virtio_transport_free_pkt(pkt); in virtio_vsock_rx_fill()
300 struct virtio_vsock_pkt *pkt; in virtio_transport_tx_work() local
304 while ((pkt = virtqueue_get_buf(vq, &len)) != NULL) { in virtio_transport_tx_work()
305 virtio_transport_free_pkt(pkt); in virtio_transport_tx_work()
507 struct virtio_vsock_pkt *pkt; in virtio_transport_rx_work() local
518 pkt = virtqueue_get_buf(vq, &len); in virtio_transport_rx_work()
519 if (!pkt) { in virtio_transport_rx_work()
526 if (unlikely(len < sizeof(pkt->hdr) || in virtio_transport_rx_work()
527 len > sizeof(pkt->hdr) + pkt->len)) { in virtio_transport_rx_work()
528 virtio_transport_free_pkt(pkt); in virtio_transport_rx_work()
532 pkt->len = len - sizeof(pkt->hdr); in virtio_transport_rx_work()
533 virtio_transport_deliver_tap_pkt(pkt); in virtio_transport_rx_work()
534 virtio_transport_recv_pkt(&virtio_transport, pkt); in virtio_transport_rx_work()
629 struct virtio_vsock_pkt *pkt; in virtio_vsock_remove() local
661 while ((pkt = virtqueue_detach_unused_buf(vsock->vqs[VSOCK_VQ_RX]))) in virtio_vsock_remove()
662 virtio_transport_free_pkt(pkt); in virtio_vsock_remove()
666 while ((pkt = virtqueue_detach_unused_buf(vsock->vqs[VSOCK_VQ_TX]))) in virtio_vsock_remove()
667 virtio_transport_free_pkt(pkt); in virtio_vsock_remove()
672 pkt = list_first_entry(&vsock->send_pkt_list, in virtio_vsock_remove()
674 list_del(&pkt->list); in virtio_vsock_remove()
675 virtio_transport_free_pkt(pkt); in virtio_vsock_remove()