]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commit
vduse: implement DMA sync callbacks
authorMaxime Coquelin <maxime.coquelin@redhat.com>
Mon, 19 Feb 2024 17:06:06 +0000 (18:06 +0100)
committerMichael S. Tsirkin <mst@redhat.com>
Tue, 19 Mar 2024 06:45:49 +0000 (02:45 -0400)
commitd7b4e3287ca3a7baf66efd9158498e551a9550da
tree8175cee3b84db3c9bafb4ba10b9626945475359b
parent749a4016839270163efc36ecddddd01de491a16b
vduse: implement DMA sync callbacks

Since commit 295525e29a5b ("virtio_net: merge dma
operations when filling mergeable buffers"), VDUSE device
require support for DMA's .sync_single_for_cpu() operation
as the memory is non-coherent between the device and CPU
because of the use of a bounce buffer.

This patch implements both .sync_single_for_cpu() and
.sync_single_for_device() callbacks, and also skip bounce
buffer copies during DMA map and unmap operations if the
DMA_ATTR_SKIP_CPU_SYNC attribute is set to avoid extra
copies of the same buffer.

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Message-Id: <20240219170606.587290-1-maxime.coquelin@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
drivers/vdpa/vdpa_user/iova_domain.c
drivers/vdpa/vdpa_user/iova_domain.h
drivers/vdpa/vdpa_user/vduse_dev.c