virtio_ring.c (9f4813b531a0b8cc502fcfb142937fe4e9104d77) virtio_ring.c (f7728002c1c7bfa787b276a31c3ef458739b8e7c)
1// SPDX-License-Identifier: GPL-2.0-or-later
2/* Virtio ring implementation.
3 *
4 * Copyright 2007 Rusty Russell IBM Corporation
5 */
6#include <linux/virtio.h>
7#include <linux/virtio_ring.h>
8#include <linux/virtio_config.h>

--- 569 unchanged lines hidden (view full) ---

578 vring_unmap_one_split(vq, &desc[i]);
579 i = virtio16_to_cpu(_vq->vdev, desc[i].next);
580 }
581
582 if (indirect)
583 kfree(desc);
584
585 END_USE(vq);
1// SPDX-License-Identifier: GPL-2.0-or-later
2/* Virtio ring implementation.
3 *
4 * Copyright 2007 Rusty Russell IBM Corporation
5 */
6#include <linux/virtio.h>
7#include <linux/virtio_ring.h>
8#include <linux/virtio_config.h>

--- 569 unchanged lines hidden (view full) ---

578 vring_unmap_one_split(vq, &desc[i]);
579 i = virtio16_to_cpu(_vq->vdev, desc[i].next);
580 }
581
582 if (indirect)
583 kfree(desc);
584
585 END_USE(vq);
586 return -EIO;
586 return -ENOMEM;
587}
588
589static bool virtqueue_kick_prepare_split(struct virtqueue *_vq)
590{
591 struct vring_virtqueue *vq = to_vvq(_vq);
592 u16 new, old;
593 bool needs_kick;
594

--- 485 unchanged lines hidden (view full) ---

1080 err_idx = i;
1081
1082 for (i = 0; i < err_idx; i++)
1083 vring_unmap_desc_packed(vq, &desc[i]);
1084
1085 kfree(desc);
1086
1087 END_USE(vq);
587}
588
589static bool virtqueue_kick_prepare_split(struct virtqueue *_vq)
590{
591 struct vring_virtqueue *vq = to_vvq(_vq);
592 u16 new, old;
593 bool needs_kick;
594

--- 485 unchanged lines hidden (view full) ---

1080 err_idx = i;
1081
1082 for (i = 0; i < err_idx; i++)
1083 vring_unmap_desc_packed(vq, &desc[i]);
1084
1085 kfree(desc);
1086
1087 END_USE(vq);
1088 return -EIO;
1088 return -ENOMEM;
1089}
1090
1091static inline int virtqueue_add_packed(struct virtqueue *_vq,
1092 struct scatterlist *sgs[],
1093 unsigned int total_sg,
1094 unsigned int out_sgs,
1095 unsigned int in_sgs,
1096 void *data,

--- 1233 unchanged lines hidden ---
1089}
1090
1091static inline int virtqueue_add_packed(struct virtqueue *_vq,
1092 struct scatterlist *sgs[],
1093 unsigned int total_sg,
1094 unsigned int out_sgs,
1095 unsigned int in_sgs,
1096 void *data,

--- 1233 unchanged lines hidden ---