diff --git a/arch/arm/include/asm/page.h b/arch/arm/include/asm/page.h index 11b058a72a5b..cb9c058399d1 100644 --- a/arch/arm/include/asm/page.h +++ b/arch/arm/include/asm/page.h @@ -155,6 +155,9 @@ typedef struct page *pgtable_t; #ifdef CONFIG_HAVE_ARCH_PFN_VALID extern int pfn_valid(unsigned long); +#if IS_ENABLED(CONFIG_AMLOGIC_DMC_MONITOR_BREAK_GKI) +extern int pfn_is_map_memory(unsigned long pfn); +#endif #endif #include diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c index 6d04cb75d26b..0f16cece0fc0 100644 --- a/arch/arm/mm/init.c +++ b/arch/arm/mm/init.c @@ -147,6 +147,19 @@ int pfn_valid(unsigned long pfn) return 0; } EXPORT_SYMBOL(pfn_valid); + +#if IS_ENABLED(CONFIG_AMLOGIC_DMC_MONITOR_BREAK_GKI) +int pfn_is_map_memory(unsigned long pfn) +{ + phys_addr_t addr = __pfn_to_phys(pfn); + + if (pfn_valid(pfn)) + return memblock_is_map_memory(addr); + + return 0; +} +EXPORT_SYMBOL(pfn_is_map_memory); +#endif #endif static bool arm_memblock_steal_permitted = true;