Lines Matching refs:pkt
103 struct virtio_vsock_pkt *pkt; in virtio_transport_send_pkt_work() local
114 pkt = list_first_entry(&vsock->send_pkt_list, in virtio_transport_send_pkt_work()
116 list_del_init(&pkt->list); in virtio_transport_send_pkt_work()
119 virtio_transport_deliver_tap_pkt(pkt); in virtio_transport_send_pkt_work()
121 reply = pkt->reply; in virtio_transport_send_pkt_work()
123 sg_init_one(&hdr, &pkt->hdr, sizeof(pkt->hdr)); in virtio_transport_send_pkt_work()
125 if (pkt->buf) { in virtio_transport_send_pkt_work()
126 sg_init_one(&buf, pkt->buf, pkt->len); in virtio_transport_send_pkt_work()
130 ret = virtqueue_add_sgs(vq, sgs, out_sg, in_sg, pkt, GFP_KERNEL); in virtio_transport_send_pkt_work()
136 list_add(&pkt->list, &vsock->send_pkt_list); in virtio_transport_send_pkt_work()
166 virtio_transport_send_pkt(struct virtio_vsock_pkt *pkt) in virtio_transport_send_pkt() argument
169 int len = pkt->len; in virtio_transport_send_pkt()
174 virtio_transport_free_pkt(pkt); in virtio_transport_send_pkt()
179 if (le64_to_cpu(pkt->hdr.dst_cid) == vsock->guest_cid) { in virtio_transport_send_pkt()
180 virtio_transport_free_pkt(pkt); in virtio_transport_send_pkt()
185 if (pkt->reply) in virtio_transport_send_pkt()
189 list_add_tail(&pkt->list, &vsock->send_pkt_list); in virtio_transport_send_pkt()
203 struct virtio_vsock_pkt *pkt, *n; in virtio_transport_cancel_pkt() local
215 list_for_each_entry_safe(pkt, n, &vsock->send_pkt_list, list) { in virtio_transport_cancel_pkt()
216 if (pkt->vsk != vsk) in virtio_transport_cancel_pkt()
218 list_move(&pkt->list, &freeme); in virtio_transport_cancel_pkt()
222 list_for_each_entry_safe(pkt, n, &freeme, list) { in virtio_transport_cancel_pkt()
223 if (pkt->reply) in virtio_transport_cancel_pkt()
225 list_del(&pkt->list); in virtio_transport_cancel_pkt()
226 virtio_transport_free_pkt(pkt); in virtio_transport_cancel_pkt()
249 struct virtio_vsock_pkt *pkt; in virtio_vsock_rx_fill() local
257 pkt = kzalloc(sizeof(*pkt), GFP_KERNEL); in virtio_vsock_rx_fill()
258 if (!pkt) in virtio_vsock_rx_fill()
261 pkt->buf = kmalloc(buf_len, GFP_KERNEL); in virtio_vsock_rx_fill()
262 if (!pkt->buf) { in virtio_vsock_rx_fill()
263 virtio_transport_free_pkt(pkt); in virtio_vsock_rx_fill()
267 pkt->buf_len = buf_len; in virtio_vsock_rx_fill()
268 pkt->len = buf_len; in virtio_vsock_rx_fill()
270 sg_init_one(&hdr, &pkt->hdr, sizeof(pkt->hdr)); in virtio_vsock_rx_fill()
273 sg_init_one(&buf, pkt->buf, buf_len); in virtio_vsock_rx_fill()
275 ret = virtqueue_add_sgs(vq, sgs, 0, 2, pkt, GFP_KERNEL); in virtio_vsock_rx_fill()
277 virtio_transport_free_pkt(pkt); in virtio_vsock_rx_fill()
301 struct virtio_vsock_pkt *pkt; in virtio_transport_tx_work() local
305 while ((pkt = virtqueue_get_buf(vq, &len)) != NULL) { in virtio_transport_tx_work()
306 virtio_transport_free_pkt(pkt); in virtio_transport_tx_work()
509 struct virtio_vsock_pkt *pkt; in virtio_transport_rx_work() local
520 pkt = virtqueue_get_buf(vq, &len); in virtio_transport_rx_work()
521 if (!pkt) { in virtio_transport_rx_work()
528 if (unlikely(len < sizeof(pkt->hdr) || in virtio_transport_rx_work()
529 len > sizeof(pkt->hdr) + pkt->len)) { in virtio_transport_rx_work()
530 virtio_transport_free_pkt(pkt); in virtio_transport_rx_work()
534 pkt->len = len - sizeof(pkt->hdr); in virtio_transport_rx_work()
535 virtio_transport_deliver_tap_pkt(pkt); in virtio_transport_rx_work()
536 virtio_transport_recv_pkt(&virtio_transport, pkt); in virtio_transport_rx_work()
631 struct virtio_vsock_pkt *pkt; in virtio_vsock_remove() local
664 while ((pkt = virtqueue_detach_unused_buf(vsock->vqs[VSOCK_VQ_RX]))) in virtio_vsock_remove()
665 virtio_transport_free_pkt(pkt); in virtio_vsock_remove()
669 while ((pkt = virtqueue_detach_unused_buf(vsock->vqs[VSOCK_VQ_TX]))) in virtio_vsock_remove()
670 virtio_transport_free_pkt(pkt); in virtio_vsock_remove()
675 pkt = list_first_entry(&vsock->send_pkt_list, in virtio_vsock_remove()
677 list_del(&pkt->list); in virtio_vsock_remove()
678 virtio_transport_free_pkt(pkt); in virtio_vsock_remove()