On Fri, Apr 22, 2022 at 07:51:03PM +0300, Oleksandr Tyshchenko wrote:
> static inline void xen_setup_dma_ops(struct device *dev)
> {
> #ifdef CONFIG_XEN
> - if (xen_swiotlb_detect())
> + if (arch_has_restricted_virtio_memory_access() &&
> + xen_is_grant_dma_device(dev))
> + xen_grant_setup_dma_ops(dev);
> + else if (xen_swiotlb_detect())I don't think that arch_has_restricted_virtio_memory_access check should be there as it still is a bit of a layering violation.
