On 2020/2/4 下午4:21, Zhu Lingshan wrote:
+static const struct dma_map_ops vdpasim_dma_ops = {
+ .map_page = vdpasim_map_page,
+ .unmap_page = vdpasim_unmap_page,
+ .alloc = vdpasim_alloc_coherent,
+ .free = vdpasim_free_coherent,
+};
+
Hey Jason,
IMHO, it would be nice if dma_ops of the parent device could be
re-used. vdpa_device is expecting to represent a physical device
except this simulator, however, there are not enough information in
vdpa_device.dev to indicating which kind physical device it attached
to. Namely get_arch_dma_ops(struct bus type) can not work on
vdpa_device.dev. Then it seems device drivers need to implement a wrap
of dma_ops of parent devices. Can this work be done in the vdpa
framework since it looks like a common task? Can
"vd_dev->vdev.dev.parent = vdpa->dev->parent;" in virtio_vdpa_probe()
do the work?
Thanks,
BR
Zhu Lingshan
Good catch.
I think we can.
Thanks