From e05e6574f729d534de2b795facb3b98c321ae0ce Mon Sep 17 00:00:00 2001 From: Dezhi Huang Date: Thu, 23 May 2024 15:10:35 +0800 Subject: [PATCH] ANDROID: Allow vendor modules perform more operations on memleak detect Export arch_vma_name, _vm_normal_page, pmd_clear_bad, __pmd_trans_huge_lock functions. Allow vendor modules perform more operations on memleak detect and debug. It can detect multiple types of memleak,such as Native,ION,Slub and Vmalloc. Shows detail size of memleak, and shows the stack. Bug: 379962310 Bug: 365506692 Bug: 342305999 Change-Id: I118efa570e660d0696bf081d00b670760d01bec1 Signed-off-by: Dezhi Huang (cherry picked from commit 21e76b82444db3635eacb360f0d0206a069de4a8) (cherry picked from commit ce0653fd2cb3b91553870938edd1b854c4975c72) --- kernel/signal.c | 1 + mm/huge_memory.c | 1 + mm/memory.c | 1 + mm/pgtable-generic.c | 1 + 4 files changed, 4 insertions(+) diff --git a/kernel/signal.c b/kernel/signal.c index 1b8107e71c30..63c01658e94a 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -4574,6 +4574,7 @@ __weak const char *arch_vma_name(struct vm_area_struct *vma) { return NULL; } +EXPORT_SYMBOL_GPL(arch_vma_name); static inline void siginfo_buildtime_checks(void) { diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 14bc79900736..25bc945d2ab4 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -1906,6 +1906,7 @@ spinlock_t *__pmd_trans_huge_lock(pmd_t *pmd, struct vm_area_struct *vma) spin_unlock(ptl); return NULL; } +EXPORT_SYMBOL_GPL(__pmd_trans_huge_lock); /* * Returns true if a given pud maps a thp, false otherwise. diff --git a/mm/memory.c b/mm/memory.c index 2aeeef494103..82f775ec57a6 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -698,6 +698,7 @@ struct page *_vm_normal_page(struct vm_area_struct *vma, unsigned long addr, out: return pfn_to_page(pfn); } +EXPORT_SYMBOL_GPL(_vm_normal_page); #ifdef CONFIG_TRANSPARENT_HUGEPAGE struct page *vm_normal_page_pmd(struct vm_area_struct *vma, unsigned long addr, diff --git a/mm/pgtable-generic.c b/mm/pgtable-generic.c index 4e640baf9794..11d465c10046 100644 --- a/mm/pgtable-generic.c +++ b/mm/pgtable-generic.c @@ -50,6 +50,7 @@ void pmd_clear_bad(pmd_t *pmd) pmd_ERROR(*pmd); pmd_clear(pmd); } +EXPORT_SYMBOL_GPL(pmd_clear_bad); #ifndef __HAVE_ARCH_PTEP_SET_ACCESS_FLAGS /*