• Home
  • Raw
  • Download

Lines Matching refs:pkt

101 		struct virtio_vsock_pkt *pkt;  in vhost_transport_do_send_pkt()  local
115 pkt = list_first_entry(&vsock->send_pkt_list, in vhost_transport_do_send_pkt()
117 list_del_init(&pkt->list); in vhost_transport_do_send_pkt()
124 list_add(&pkt->list, &vsock->send_pkt_list); in vhost_transport_do_send_pkt()
131 list_add(&pkt->list, &vsock->send_pkt_list); in vhost_transport_do_send_pkt()
145 virtio_transport_free_pkt(pkt); in vhost_transport_do_send_pkt()
151 if (iov_len < sizeof(pkt->hdr)) { in vhost_transport_do_send_pkt()
152 virtio_transport_free_pkt(pkt); in vhost_transport_do_send_pkt()
158 payload_len = pkt->len - pkt->off; in vhost_transport_do_send_pkt()
163 if (payload_len > iov_len - sizeof(pkt->hdr)) in vhost_transport_do_send_pkt()
164 payload_len = iov_len - sizeof(pkt->hdr); in vhost_transport_do_send_pkt()
167 pkt->hdr.len = cpu_to_le32(payload_len); in vhost_transport_do_send_pkt()
169 nbytes = copy_to_iter(&pkt->hdr, sizeof(pkt->hdr), &iov_iter); in vhost_transport_do_send_pkt()
170 if (nbytes != sizeof(pkt->hdr)) { in vhost_transport_do_send_pkt()
171 virtio_transport_free_pkt(pkt); in vhost_transport_do_send_pkt()
176 nbytes = copy_to_iter(pkt->buf + pkt->off, payload_len, in vhost_transport_do_send_pkt()
179 virtio_transport_free_pkt(pkt); in vhost_transport_do_send_pkt()
187 virtio_transport_deliver_tap_pkt(pkt); in vhost_transport_do_send_pkt()
189 vhost_add_used(vq, head, sizeof(pkt->hdr) + payload_len); in vhost_transport_do_send_pkt()
192 pkt->off += payload_len; in vhost_transport_do_send_pkt()
198 if (pkt->off < pkt->len) { in vhost_transport_do_send_pkt()
203 pkt->tap_delivered = false; in vhost_transport_do_send_pkt()
206 list_add(&pkt->list, &vsock->send_pkt_list); in vhost_transport_do_send_pkt()
209 if (pkt->reply) { in vhost_transport_do_send_pkt()
221 virtio_transport_free_pkt(pkt); in vhost_transport_do_send_pkt()
246 vhost_transport_send_pkt(struct virtio_vsock_pkt *pkt) in vhost_transport_send_pkt() argument
249 int len = pkt->len; in vhost_transport_send_pkt()
254 vsock = vhost_vsock_get(le64_to_cpu(pkt->hdr.dst_cid)); in vhost_transport_send_pkt()
257 virtio_transport_free_pkt(pkt); in vhost_transport_send_pkt()
261 if (pkt->reply) in vhost_transport_send_pkt()
265 list_add_tail(&pkt->list, &vsock->send_pkt_list); in vhost_transport_send_pkt()
278 struct virtio_vsock_pkt *pkt, *n; in vhost_transport_cancel_pkt() local
291 list_for_each_entry_safe(pkt, n, &vsock->send_pkt_list, list) { in vhost_transport_cancel_pkt()
292 if (pkt->vsk != vsk) in vhost_transport_cancel_pkt()
294 list_move(&pkt->list, &freeme); in vhost_transport_cancel_pkt()
298 list_for_each_entry_safe(pkt, n, &freeme, list) { in vhost_transport_cancel_pkt()
299 if (pkt->reply) in vhost_transport_cancel_pkt()
301 list_del(&pkt->list); in vhost_transport_cancel_pkt()
302 virtio_transport_free_pkt(pkt); in vhost_transport_cancel_pkt()
324 struct virtio_vsock_pkt *pkt; in vhost_vsock_alloc_pkt() local
334 pkt = kzalloc(sizeof(*pkt), GFP_KERNEL); in vhost_vsock_alloc_pkt()
335 if (!pkt) in vhost_vsock_alloc_pkt()
341 nbytes = copy_from_iter(&pkt->hdr, sizeof(pkt->hdr), &iov_iter); in vhost_vsock_alloc_pkt()
342 if (nbytes != sizeof(pkt->hdr)) { in vhost_vsock_alloc_pkt()
344 sizeof(pkt->hdr), nbytes); in vhost_vsock_alloc_pkt()
345 kfree(pkt); in vhost_vsock_alloc_pkt()
349 if (le16_to_cpu(pkt->hdr.type) == VIRTIO_VSOCK_TYPE_STREAM) in vhost_vsock_alloc_pkt()
350 pkt->len = le32_to_cpu(pkt->hdr.len); in vhost_vsock_alloc_pkt()
353 if (!pkt->len) in vhost_vsock_alloc_pkt()
354 return pkt; in vhost_vsock_alloc_pkt()
357 if (pkt->len > VIRTIO_VSOCK_MAX_PKT_BUF_SIZE) { in vhost_vsock_alloc_pkt()
358 kfree(pkt); in vhost_vsock_alloc_pkt()
362 pkt->buf = kvmalloc(pkt->len, GFP_KERNEL); in vhost_vsock_alloc_pkt()
363 if (!pkt->buf) { in vhost_vsock_alloc_pkt()
364 kfree(pkt); in vhost_vsock_alloc_pkt()
368 pkt->buf_len = pkt->len; in vhost_vsock_alloc_pkt()
370 nbytes = copy_from_iter(pkt->buf, pkt->len, &iov_iter); in vhost_vsock_alloc_pkt()
371 if (nbytes != pkt->len) { in vhost_vsock_alloc_pkt()
373 pkt->len, nbytes); in vhost_vsock_alloc_pkt()
374 virtio_transport_free_pkt(pkt); in vhost_vsock_alloc_pkt()
378 return pkt; in vhost_vsock_alloc_pkt()
442 struct virtio_vsock_pkt *pkt; in vhost_vsock_handle_tx_kick() local
477 pkt = vhost_vsock_alloc_pkt(vq, out, in); in vhost_vsock_handle_tx_kick()
478 if (!pkt) { in vhost_vsock_handle_tx_kick()
483 len = pkt->len; in vhost_vsock_handle_tx_kick()
486 virtio_transport_deliver_tap_pkt(pkt); in vhost_vsock_handle_tx_kick()
489 if (le64_to_cpu(pkt->hdr.src_cid) == vsock->guest_cid && in vhost_vsock_handle_tx_kick()
490 le64_to_cpu(pkt->hdr.dst_cid) == in vhost_vsock_handle_tx_kick()
492 virtio_transport_recv_pkt(&vhost_transport, pkt); in vhost_vsock_handle_tx_kick()
494 virtio_transport_free_pkt(pkt); in vhost_vsock_handle_tx_kick()
496 len += sizeof(pkt->hdr); in vhost_vsock_handle_tx_kick()
714 struct virtio_vsock_pkt *pkt; in vhost_vsock_dev_release() local
716 pkt = list_first_entry(&vsock->send_pkt_list, in vhost_vsock_dev_release()
718 list_del_init(&pkt->list); in vhost_vsock_dev_release()
719 virtio_transport_free_pkt(pkt); in vhost_vsock_dev_release()