Displaying 4 results from an estimated 4 matches for "virtqueue_detach_cursor".
2023 Jun 22
1
[PATCH vhost v10 05/10] virtio_ring: split-detach: support return dma info to driver
...bool virtqueue_kick_prepare_split(struct virtqueue *_vq)
> return needs_kick;
> }
>
> -static void detach_buf_split(struct vring_virtqueue *vq, unsigned int head,
> - void **ctx)
> +static void detach_cursor_init_split(struct vring_virtqueue *vq,
> + struct virtqueue_detach_cursor *cursor, u16 head)
> +{
> + struct vring_desc_extra *extra;
> +
> + extra = &vq->split.desc_extra[head];
> +
> + /* Clear data ptr. */
> + vq->split.desc_state[head].data = NULL;
> +
> + cursor->head = head;
> + cursor->done = 0;
> +
> + if (extra...
2023 Jun 02
12
[PATCH vhost v10 00/10] virtio core prepares for AF_XDP
## About DMA APIs
Now, virtio may can not work with DMA APIs when virtio features do not have
VIRTIO_F_ACCESS_PLATFORM.
1. I tried to let DMA APIs return phy address by virtio-device. But DMA APIs just
work with the "real" devices.
2. I tried to let xsk support callballs to get phy address from virtio-net
driver as the dma address. But the maintainers of xsk may want to use
2023 Jun 02
12
[PATCH vhost v10 00/10] virtio core prepares for AF_XDP
## About DMA APIs
Now, virtio may can not work with DMA APIs when virtio features do not have
VIRTIO_F_ACCESS_PLATFORM.
1. I tried to let DMA APIs return phy address by virtio-device. But DMA APIs just
work with the "real" devices.
2. I tried to let xsk support callballs to get phy address from virtio-net
driver as the dma address. But the maintainers of xsk may want to use
2023 Jun 22
1
[PATCH vhost v10 10/10] virtio_net: support dma premapped
...>
> /* This structure can contain rss message with maximum settings for indirection table and keysize
> @@ -546,6 +553,105 @@ static struct sk_buff *page_to_skb(struct virtnet_info *vi,
> return skb;
> }
>
> +static int virtnet_generic_unmap(struct virtqueue *vq, struct virtqueue_detach_cursor *cursor)
> +{
> + enum dma_data_direction dir;
> + dma_addr_t addr;
> + u32 len;
> + int err;
> +
> + do {
> + err = virtqueue_detach(vq, cursor, &addr, &len, &dir);
> + if (!err || err == -EAGAIN)
> + dma_unmap_page_attrs(virtqueue_dma_dev(vq), addr, l...