Commit 880ebcbe authored by Xuan Zhuo's avatar Xuan Zhuo Committed by Jakub Kicinski
Browse files

virtio_ring: remove API virtqueue_set_dma_premapped

parent 31f3cd4e
Loading
Loading
Loading
Loading
+0 −13
Original line number Diff line number Diff line
@@ -6168,15 +6168,6 @@ static int virtnet_alloc_queues(struct virtnet_info *vi)
	return -ENOMEM;
}

static void virtnet_rq_set_premapped(struct virtnet_info *vi)
{
	int i;

	for (i = 0; i < vi->max_queue_pairs; i++)
		/* error should never happen */
		BUG_ON(virtqueue_set_dma_premapped(vi->rq[i].vq));
}

static int init_vqs(struct virtnet_info *vi)
{
	int ret;
@@ -6190,10 +6181,6 @@ static int init_vqs(struct virtnet_info *vi)
	if (ret)
		goto err_free;

	/* disable for big mode */
	if (!vi->big_packets || vi->mergeable_rx_bufs)
		virtnet_rq_set_premapped(vi);

	cpus_read_lock();
	virtnet_set_affinity(vi);
	cpus_read_unlock();
+0 −48
Original line number Diff line number Diff line
@@ -180,9 +180,6 @@ struct vring_virtqueue {
	/* Host publishes avail event idx */
	bool event;

	/* Do DMA mapping by driver */
	bool premapped;

	/* Head of free buffer list. */
	unsigned int free_head;
	/* Number we've added since last sync. */
@@ -2098,7 +2095,6 @@ static struct virtqueue *vring_create_virtqueue_packed(
	vq->packed_ring = true;
	vq->dma_dev = dma_dev;
	vq->use_dma_api = vring_use_dma_api(vdev);
	vq->premapped = false;

	vq->indirect = virtio_has_feature(vdev, VIRTIO_RING_F_INDIRECT_DESC) &&
		!context;
@@ -2691,7 +2687,6 @@ static struct virtqueue *__vring_new_virtqueue(unsigned int index,
#endif
	vq->dma_dev = dma_dev;
	vq->use_dma_api = vring_use_dma_api(vdev);
	vq->premapped = false;

	vq->indirect = virtio_has_feature(vdev, VIRTIO_RING_F_INDIRECT_DESC) &&
		!context;
@@ -2818,49 +2813,6 @@ int virtqueue_resize(struct virtqueue *_vq, u32 num,
}
EXPORT_SYMBOL_GPL(virtqueue_resize);

/**
 * virtqueue_set_dma_premapped - set the vring premapped mode
 * @_vq: the struct virtqueue we're talking about.
 *
 * Enable the premapped mode of the vq.
 *
 * The vring in premapped mode does not do dma internally, so the driver must
 * do dma mapping in advance. The driver must pass the dma_address through
 * dma_address of scatterlist. When the driver got a used buffer from
 * the vring, it has to unmap the dma address.
 *
 * This function must be called immediately after creating the vq, or after vq
 * reset, and before adding any buffers to it.
 *
 * Caller must ensure we don't call this with other virtqueue operations
 * at the same time (except where noted).
 *
 * Returns zero or a negative error.
 * 0: success.
 * -EINVAL: too late to enable premapped mode, the vq already contains buffers.
 */
int virtqueue_set_dma_premapped(struct virtqueue *_vq)
{
	struct vring_virtqueue *vq = to_vvq(_vq);
	u32 num;

	START_USE(vq);

	num = vq->packed_ring ? vq->packed.vring.num : vq->split.vring.num;

	if (num != vq->vq.num_free) {
		END_USE(vq);
		return -EINVAL;
	}

	vq->premapped = true;

	END_USE(vq);

	return 0;
}
EXPORT_SYMBOL_GPL(virtqueue_set_dma_premapped);

/**
 * virtqueue_reset - detach and recycle all unused buffers
 * @_vq: the struct virtqueue we're talking about.
+0 −2
Original line number Diff line number Diff line
@@ -93,8 +93,6 @@ bool virtqueue_enable_cb(struct virtqueue *vq);

unsigned virtqueue_enable_cb_prepare(struct virtqueue *vq);

int virtqueue_set_dma_premapped(struct virtqueue *_vq);

bool virtqueue_poll(struct virtqueue *vq, unsigned);

bool virtqueue_enable_cb_delayed(struct virtqueue *vq);