Loading drivers/pci/intel-iommu.c +33 −0 Original line number Diff line number Diff line Loading @@ -57,6 +57,39 @@ #define DMA_32BIT_PFN IOVA_PFN(DMA_32BIT_MASK) #define DMA_64BIT_PFN IOVA_PFN(DMA_64BIT_MASK) /* * 0: Present * 1-11: Reserved * 12-63: Context Ptr (12 - (haw-1)) * 64-127: Reserved */ struct root_entry { u64 val; u64 rsvd1; }; #define ROOT_ENTRY_NR (VTD_PAGE_SIZE/sizeof(struct root_entry)) static inline bool root_present(struct root_entry *root) { return (root->val & 1); } static inline void set_root_present(struct root_entry *root) { root->val |= 1; } static inline void set_root_value(struct root_entry *root, unsigned long value) { root->val |= value & VTD_PAGE_MASK; } static inline struct context_entry * get_context_addr_from_root(struct root_entry *root) { return (struct context_entry *) (root_present(root)?phys_to_virt( root->val & VTD_PAGE_MASK) : NULL); } static void flush_unmaps_timeout(unsigned long data); DEFINE_TIMER(unmap_timer, flush_unmaps_timeout, 0, 0); Loading include/linux/dma_remapping.h +1 −33 Original line number Diff line number Diff line Loading @@ -9,39 +9,7 @@ #define VTD_PAGE_MASK (((u64)-1) << VTD_PAGE_SHIFT) #define VTD_PAGE_ALIGN(addr) (((addr) + VTD_PAGE_SIZE - 1) & VTD_PAGE_MASK) /* * 0: Present * 1-11: Reserved * 12-63: Context Ptr (12 - (haw-1)) * 64-127: Reserved */ struct root_entry { u64 val; u64 rsvd1; }; #define ROOT_ENTRY_NR (VTD_PAGE_SIZE/sizeof(struct root_entry)) static inline bool root_present(struct root_entry *root) { return (root->val & 1); } static inline void set_root_present(struct root_entry *root) { root->val |= 1; } static inline void set_root_value(struct root_entry *root, unsigned long value) { root->val |= value & VTD_PAGE_MASK; } struct context_entry; static inline struct context_entry * get_context_addr_from_root(struct root_entry *root) { return (struct context_entry *) (root_present(root)?phys_to_virt( root->val & VTD_PAGE_MASK) : NULL); } struct root_entry; /* * low 64 bits: Loading Loading
drivers/pci/intel-iommu.c +33 −0 Original line number Diff line number Diff line Loading @@ -57,6 +57,39 @@ #define DMA_32BIT_PFN IOVA_PFN(DMA_32BIT_MASK) #define DMA_64BIT_PFN IOVA_PFN(DMA_64BIT_MASK) /* * 0: Present * 1-11: Reserved * 12-63: Context Ptr (12 - (haw-1)) * 64-127: Reserved */ struct root_entry { u64 val; u64 rsvd1; }; #define ROOT_ENTRY_NR (VTD_PAGE_SIZE/sizeof(struct root_entry)) static inline bool root_present(struct root_entry *root) { return (root->val & 1); } static inline void set_root_present(struct root_entry *root) { root->val |= 1; } static inline void set_root_value(struct root_entry *root, unsigned long value) { root->val |= value & VTD_PAGE_MASK; } static inline struct context_entry * get_context_addr_from_root(struct root_entry *root) { return (struct context_entry *) (root_present(root)?phys_to_virt( root->val & VTD_PAGE_MASK) : NULL); } static void flush_unmaps_timeout(unsigned long data); DEFINE_TIMER(unmap_timer, flush_unmaps_timeout, 0, 0); Loading
include/linux/dma_remapping.h +1 −33 Original line number Diff line number Diff line Loading @@ -9,39 +9,7 @@ #define VTD_PAGE_MASK (((u64)-1) << VTD_PAGE_SHIFT) #define VTD_PAGE_ALIGN(addr) (((addr) + VTD_PAGE_SIZE - 1) & VTD_PAGE_MASK) /* * 0: Present * 1-11: Reserved * 12-63: Context Ptr (12 - (haw-1)) * 64-127: Reserved */ struct root_entry { u64 val; u64 rsvd1; }; #define ROOT_ENTRY_NR (VTD_PAGE_SIZE/sizeof(struct root_entry)) static inline bool root_present(struct root_entry *root) { return (root->val & 1); } static inline void set_root_present(struct root_entry *root) { root->val |= 1; } static inline void set_root_value(struct root_entry *root, unsigned long value) { root->val |= value & VTD_PAGE_MASK; } struct context_entry; static inline struct context_entry * get_context_addr_from_root(struct root_entry *root) { return (struct context_entry *) (root_present(root)?phys_to_virt( root->val & VTD_PAGE_MASK) : NULL); } struct root_entry; /* * low 64 bits: Loading