On Fri, Apr 22, 2022 at 07:51:03PM +0300, Oleksandr Tyshchenko wrote:
static inline void xen_setup_dma_ops(struct device *dev)I don't think that arch_has_restricted_virtio_memory_access
{
#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())
check should be there as it still is a bit of a layering violation.
--