iommu: inline iommu_num_pages
[sfrench/cifs-2.6.git] / include / linux / iommu-helper.h
index 64d1b638745d63bc0ac7569427e583db3236a0cc..86bdeffe43ad69e3dba2781eeed06b8cbe847a69 100644 (file)
@@ -1,6 +1,8 @@
 #ifndef _LINUX_IOMMU_HELPER_H
 #define _LINUX_IOMMU_HELPER_H
 
+#include <linux/kernel.h>
+
 static inline unsigned long iommu_device_max_index(unsigned long size,
                                                   unsigned long offset,
                                                   u64 dma_mask)
@@ -20,7 +22,13 @@ extern unsigned long iommu_area_alloc(unsigned long *map, unsigned long size,
                                      unsigned long boundary_size,
                                      unsigned long align_mask);
 
-extern unsigned long iommu_num_pages(unsigned long addr, unsigned long len,
-                                    unsigned long io_page_size);
+static inline unsigned long iommu_num_pages(unsigned long addr,
+                                           unsigned long len,
+                                           unsigned long io_page_size)
+{
+       unsigned long size = (addr & (io_page_size - 1)) + len;
+
+       return DIV_ROUND_UP(size, io_page_size);
+}
 
 #endif