From b9e04d50ce67a2ed1ac20e91c4ef113b7e933c41 Mon Sep 17 00:00:00 2001 From: Tao Zeng Date: Tue, 25 Dec 2018 19:17:25 +0800 Subject: [PATCH] mm: check virt_to_xxxx macro on 32bit OS [1/1] PD#SWPL-1909 Problem: virt_to_page may get bad input with virtual address in high mem. Solution: Check input address of this macro and get a warn print Verify: p212 Change-Id: I69d81f7aac43f1865d3d1112263276603de166ce Signed-off-by: Tao Zeng --- arch/arm/include/asm/memory.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/arm/include/asm/memory.h b/arch/arm/include/asm/memory.h index 5ecadde..bde40c4 100644 --- a/arch/arm/include/asm/memory.h +++ b/arch/arm/include/asm/memory.h @@ -263,9 +263,16 @@ static inline unsigned long __phys_to_virt(phys_addr_t x) #endif +#ifdef CONFIG_AMLOGIC_MODIFY +#define virt_to_pfn(kaddr) \ + ({virt_check((unsigned long)kaddr); \ + ((((unsigned long)(kaddr) - PAGE_OFFSET) >> PAGE_SHIFT) + \ + PHYS_PFN_OFFSET); }) +#else #define virt_to_pfn(kaddr) \ ((((unsigned long)(kaddr) - PAGE_OFFSET) >> PAGE_SHIFT) + \ PHYS_PFN_OFFSET) +#endif /* * These are *only* valid on the kernel direct mapped RAM memory. -- 2.7.4