• Home
  • Raw
  • Download

Lines Matching refs:pkt

90 					      struct virtio_vsock_pkt *pkt)  in virtio_transport_send_pkt_loopback()  argument
92 int len = pkt->len; in virtio_transport_send_pkt_loopback()
95 list_add_tail(&pkt->list, &vsock->loopback_list); in virtio_transport_send_pkt_loopback()
120 struct virtio_vsock_pkt *pkt; in virtio_transport_send_pkt_work() local
131 pkt = list_first_entry(&vsock->send_pkt_list, in virtio_transport_send_pkt_work()
133 list_del_init(&pkt->list); in virtio_transport_send_pkt_work()
136 virtio_transport_deliver_tap_pkt(pkt); in virtio_transport_send_pkt_work()
138 reply = pkt->reply; in virtio_transport_send_pkt_work()
140 sg_init_one(&hdr, &pkt->hdr, sizeof(pkt->hdr)); in virtio_transport_send_pkt_work()
142 if (pkt->buf) { in virtio_transport_send_pkt_work()
143 sg_init_one(&buf, pkt->buf, pkt->len); in virtio_transport_send_pkt_work()
147 ret = virtqueue_add_sgs(vq, sgs, out_sg, in_sg, pkt, GFP_KERNEL); in virtio_transport_send_pkt_work()
153 list_add(&pkt->list, &vsock->send_pkt_list); in virtio_transport_send_pkt_work()
183 virtio_transport_send_pkt(struct virtio_vsock_pkt *pkt) in virtio_transport_send_pkt() argument
186 int len = pkt->len; in virtio_transport_send_pkt()
191 virtio_transport_free_pkt(pkt); in virtio_transport_send_pkt()
196 if (le64_to_cpu(pkt->hdr.dst_cid) == vsock->guest_cid) { in virtio_transport_send_pkt()
197 len = virtio_transport_send_pkt_loopback(vsock, pkt); in virtio_transport_send_pkt()
201 if (pkt->reply) in virtio_transport_send_pkt()
205 list_add_tail(&pkt->list, &vsock->send_pkt_list); in virtio_transport_send_pkt()
219 struct virtio_vsock_pkt *pkt, *n; in virtio_transport_cancel_pkt() local
231 list_for_each_entry_safe(pkt, n, &vsock->send_pkt_list, list) { in virtio_transport_cancel_pkt()
232 if (pkt->vsk != vsk) in virtio_transport_cancel_pkt()
234 list_move(&pkt->list, &freeme); in virtio_transport_cancel_pkt()
238 list_for_each_entry_safe(pkt, n, &freeme, list) { in virtio_transport_cancel_pkt()
239 if (pkt->reply) in virtio_transport_cancel_pkt()
241 list_del(&pkt->list); in virtio_transport_cancel_pkt()
242 virtio_transport_free_pkt(pkt); in virtio_transport_cancel_pkt()
265 struct virtio_vsock_pkt *pkt; in virtio_vsock_rx_fill() local
273 pkt = kzalloc(sizeof(*pkt), GFP_KERNEL); in virtio_vsock_rx_fill()
274 if (!pkt) in virtio_vsock_rx_fill()
277 pkt->buf = kmalloc(buf_len, GFP_KERNEL); in virtio_vsock_rx_fill()
278 if (!pkt->buf) { in virtio_vsock_rx_fill()
279 virtio_transport_free_pkt(pkt); in virtio_vsock_rx_fill()
283 pkt->buf_len = buf_len; in virtio_vsock_rx_fill()
284 pkt->len = buf_len; in virtio_vsock_rx_fill()
286 sg_init_one(&hdr, &pkt->hdr, sizeof(pkt->hdr)); in virtio_vsock_rx_fill()
289 sg_init_one(&buf, pkt->buf, buf_len); in virtio_vsock_rx_fill()
291 ret = virtqueue_add_sgs(vq, sgs, 0, 2, pkt, GFP_KERNEL); in virtio_vsock_rx_fill()
293 virtio_transport_free_pkt(pkt); in virtio_vsock_rx_fill()
317 struct virtio_vsock_pkt *pkt; in virtio_transport_tx_work() local
321 while ((pkt = virtqueue_get_buf(vq, &len)) != NULL) { in virtio_transport_tx_work()
322 virtio_transport_free_pkt(pkt); in virtio_transport_tx_work()
528 struct virtio_vsock_pkt *pkt; in virtio_transport_loopback_work() local
530 pkt = list_first_entry(&pkts, struct virtio_vsock_pkt, list); in virtio_transport_loopback_work()
531 list_del_init(&pkt->list); in virtio_transport_loopback_work()
533 virtio_transport_recv_pkt(&virtio_transport, pkt); in virtio_transport_loopback_work()
555 struct virtio_vsock_pkt *pkt; in virtio_transport_rx_work() local
566 pkt = virtqueue_get_buf(vq, &len); in virtio_transport_rx_work()
567 if (!pkt) { in virtio_transport_rx_work()
574 if (unlikely(len < sizeof(pkt->hdr) || in virtio_transport_rx_work()
575 len > sizeof(pkt->hdr) + pkt->len)) { in virtio_transport_rx_work()
576 virtio_transport_free_pkt(pkt); in virtio_transport_rx_work()
580 pkt->len = len - sizeof(pkt->hdr); in virtio_transport_rx_work()
581 virtio_transport_deliver_tap_pkt(pkt); in virtio_transport_rx_work()
582 virtio_transport_recv_pkt(&virtio_transport, pkt); in virtio_transport_rx_work()
680 struct virtio_vsock_pkt *pkt; in virtio_vsock_remove() local
712 while ((pkt = virtqueue_detach_unused_buf(vsock->vqs[VSOCK_VQ_RX]))) in virtio_vsock_remove()
713 virtio_transport_free_pkt(pkt); in virtio_vsock_remove()
717 while ((pkt = virtqueue_detach_unused_buf(vsock->vqs[VSOCK_VQ_TX]))) in virtio_vsock_remove()
718 virtio_transport_free_pkt(pkt); in virtio_vsock_remove()
723 pkt = list_first_entry(&vsock->send_pkt_list, in virtio_vsock_remove()
725 list_del(&pkt->list); in virtio_vsock_remove()
726 virtio_transport_free_pkt(pkt); in virtio_vsock_remove()
732 pkt = list_first_entry(&vsock->loopback_list, in virtio_vsock_remove()
734 list_del(&pkt->list); in virtio_vsock_remove()
735 virtio_transport_free_pkt(pkt); in virtio_vsock_remove()