move page table handling utility functions from intel-iommu.c to 
dma_remapping.h, because some of them will be used in other .c files.

Signed-off-by: Weidong Han <[EMAIL PROTECTED]>
---
 drivers/pci/intel-iommu.c     |   45 ----------------------------------------
 include/linux/dma_remapping.h |   46 ++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 45 insertions(+), 46 deletions(-)

diff --git a/drivers/pci/intel-iommu.c b/drivers/pci/intel-iommu.c
index 39c5e9d..a18e0b4 100644
--- a/drivers/pci/intel-iommu.c
+++ b/drivers/pci/intel-iommu.c
@@ -288,51 +288,6 @@ out:
        spin_unlock_irqrestore(&iommu->lock, flags);
 }
 
-/* page table handling */
-#define LEVEL_STRIDE           (9)
-#define LEVEL_MASK             (((u64)1 << LEVEL_STRIDE) - 1)
-
-static inline int agaw_to_level(int agaw)
-{
-       return agaw + 2;
-}
-
-static inline int agaw_to_width(int agaw)
-{
-       return 30 + agaw * LEVEL_STRIDE;
-
-}
-
-static inline int width_to_agaw(int width)
-{
-       return (width - 30) / LEVEL_STRIDE;
-}
-
-static inline unsigned int level_to_offset_bits(int level)
-{
-       return (12 + (level - 1) * LEVEL_STRIDE);
-}
-
-static inline int address_level_offset(u64 addr, int level)
-{
-       return ((addr >> level_to_offset_bits(level)) & LEVEL_MASK);
-}
-
-static inline u64 level_mask(int level)
-{
-       return ((u64)-1 << level_to_offset_bits(level));
-}
-
-static inline u64 level_size(int level)
-{
-       return ((u64)1 << level_to_offset_bits(level));
-}
-
-static inline u64 align_to_level(u64 addr, int level)
-{
-       return ((addr + level_size(level) - 1) & level_mask(level));
-}
-
 static struct dma_pte * addr_to_dma_pte(struct dmar_domain *domain, u64 addr)
 {
        int addr_width = agaw_to_width(domain->agaw);
diff --git a/include/linux/dma_remapping.h b/include/linux/dma_remapping.h
index 66f7887..eeb8243 100644
--- a/include/linux/dma_remapping.h
+++ b/include/linux/dma_remapping.h
@@ -13,6 +13,50 @@
 #define DMA_32BIT_PFN          IOVA_PFN(DMA_32BIT_MASK)
 #define DMA_64BIT_PFN          IOVA_PFN(DMA_64BIT_MASK)
 
+/* page table handling */
+#define VTD_LEVEL_STRIDE       (9)
+#define VTD_LEVEL_MASK         (((u64)1 << VTD_LEVEL_STRIDE) - 1)
+
+static inline int agaw_to_level(int agaw)
+{
+       return agaw + 2;
+}
+
+static inline int agaw_to_width(int agaw)
+{
+       return 30 + agaw * VTD_LEVEL_STRIDE;
+}
+
+static inline int width_to_agaw(int width)
+{
+       return (width - 30) / VTD_LEVEL_STRIDE;
+}
+
+static inline unsigned int level_to_offset_bits(int level)
+{
+       return 12 + (level - 1) * VTD_LEVEL_STRIDE;
+}
+
+static inline int address_level_offset(u64 addr, int level)
+{
+       return (addr >> level_to_offset_bits(level)) & VTD_LEVEL_MASK;
+}
+
+static inline u64 level_mask(int level)
+{
+       return (u64)-1 << level_to_offset_bits(level);
+}
+
+static inline u64 level_size(int level)
+{
+       return (u64)1 << level_to_offset_bits(level);
+}
+
+static inline u64 align_to_level(u64 addr, int level)
+{
+       return (addr + level_size(level) - 1) & level_mask(level);
+}
+
 
 /*
  * 0: Present
@@ -27,7 +71,7 @@ struct root_entry {
 #define ROOT_ENTRY_NR (VTD_PAGE_SIZE/sizeof(struct root_entry))
 static inline bool root_present(struct root_entry *root)
 {
-       return (root->val & 1);
+       return root->val & 1;
 }
 static inline void set_root_present(struct root_entry *root)
 {
-- 
1.5.1

Attachment: 0002-move-page-table-handling-utility-functions.patch
Description: 0002-move-page-table-handling-utility-functions.patch

Reply via email to