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