Apply the page shift to PFN to get physical address for final VA. The macro __va should take physical address instead of PFN as input. Fixes: 2d78057f0dd4 ("asm-generic/page.h: Make pfn accessors static inlines") Signed-off-by: Yan Zhao <yan.y.zhao@xxxxxxxxx> --- include/asm-generic/page.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/asm-generic/page.h b/include/asm-generic/page.h index 9773582fd96e..4f1265207b9a 100644 --- a/include/asm-generic/page.h +++ b/include/asm-generic/page.h @@ -81,7 +81,7 @@ static inline unsigned long virt_to_pfn(const void *kaddr) #define virt_to_pfn virt_to_pfn static inline void *pfn_to_virt(unsigned long pfn) { - return __va(pfn) << PAGE_SHIFT; + return __va(pfn << PAGE_SHIFT); } #define pfn_to_virt pfn_to_virt -- 2.17.1