diff -u a/drivers/xen/swiotlb-xen.c b/drivers/xen/swiotlb-xen.c --- a/drivers/xen/swiotlb-xen.c 2016-06-15 20:29:36.000000000 +0000 +++ b/drivers/xen/swiotlb-xen.c 2016-12-05 07:05:13.009992832 +0000 @@ -673,6 +673,13 @@ } EXPORT_SYMBOL_GPL(xen_swiotlb_dma_supported); +u64 +xen_swiotlb_get_required_mask(struct device *dev) +{ + return DMA_BIT_MASK(64); +} +EXPORT_SYMBOL_GPL(xen_swiotlb_get_required_mask); + int xen_swiotlb_set_dma_mask(struct device *dev, u64 dma_mask) { diff -u a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h --- a/include/linux/dma-mapping.h 2016-06-15 20:29:36.000000000 +0000 +++ b/include/linux/dma-mapping.h 2016-12-05 07:03:13.992601404 +0000 @@ -127,6 +127,7 @@ return dma_set_mask_and_coherent(dev, mask); } +extern u64 dma_get_required_mask_from_max_pfn(struct device *dev); extern u64 dma_get_required_mask(struct device *dev); #ifndef set_arch_dma_coherent_ops diff -u a/include/xen/swiotlb-xen.h b/include/xen/swiotlb-xen.h --- a/include/xen/swiotlb-xen.h 2016-06-15 20:29:36.000000000 +0000 +++ b/include/xen/swiotlb-xen.h 2016-12-05 07:06:01.084938801 +0000 @@ -56,6 +56,10 @@ extern int xen_swiotlb_dma_supported(struct device *hwdev, u64 mask); +extern u64 +xen_swiotlb_get_required_mask(struct device *dev); + + extern int xen_swiotlb_set_dma_mask(struct device *dev, u64 dma_mask); #endif /* __LINUX_SWIOTLB_XEN_H */