pfn_t debug From: Dan Williams --- include/linux/pfn_t.h | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/include/linux/pfn_t.h b/include/linux/pfn_t.h index 0703b5360d31..3b1051af409a 100644 --- a/include/linux/pfn_t.h +++ b/include/linux/pfn_t.h @@ -16,10 +16,25 @@ #define PFN_DEV (1UL << (BITS_PER_LONG - 3)) #define PFN_MAP (1UL << (BITS_PER_LONG - 4)) +extern pfn_t phys_to_pfn_t(phys_addr_t addr, unsigned long flags); + +static inline bool pfn_t_has_page(pfn_t pfn) +{ + return (pfn.val & PFN_MAP) == PFN_MAP || (pfn.val & PFN_DEV) == 0; +} + +static inline unsigned long pfn_t_to_pfn(pfn_t pfn) +{ + return pfn.val & ~PFN_FLAGS_MASK; +} + static inline pfn_t __pfn_to_pfn_t(unsigned long pfn, unsigned long flags) { pfn_t pfn_t = { .val = pfn | (flags & PFN_FLAGS_MASK), }; + WARN_ONCE(pfn_t_to_pfn(pfn_t) != pfn, "pfn: %#lx pfn_t: %#lx\n", + pfn, pfn_t_to_pfn(pfn_t)); + return pfn_t; } @@ -29,18 +44,6 @@ static inline pfn_t pfn_to_pfn_t(unsigned long pfn) return __pfn_to_pfn_t(pfn, 0); } -extern pfn_t phys_to_pfn_t(dma_addr_t addr, unsigned long flags); - -static inline bool pfn_t_has_page(pfn_t pfn) -{ - return (pfn.val & PFN_MAP) == PFN_MAP || (pfn.val & PFN_DEV) == 0; -} - -static inline unsigned long pfn_t_to_pfn(pfn_t pfn) -{ - return pfn.val & ~PFN_FLAGS_MASK; -} - static inline struct page *pfn_t_to_page(pfn_t pfn) { if (pfn_t_has_page(pfn))