|
@@ -608,3 +608,15 @@ xen_swiotlb_dma_supported(struct device *hwdev, u64 mask)
|
|
|
return xen_virt_to_bus(xen_io_tlb_end - 1) <= mask;
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(xen_swiotlb_dma_supported);
|
|
|
+
|
|
|
+int
|
|
|
+xen_swiotlb_set_dma_mask(struct device *dev, u64 dma_mask)
|
|
|
+{
|
|
|
+ if (!dev->dma_mask || !xen_swiotlb_dma_supported(dev, dma_mask))
|
|
|
+ return -EIO;
|
|
|
+
|
|
|
+ *dev->dma_mask = dma_mask;
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+EXPORT_SYMBOL_GPL(xen_swiotlb_set_dma_mask);
|