summaryrefslogtreecommitdiff
path: root/mm/mm_init.c
diff options
context:
space:
mode:
authorReed Riley <reed@riley.engineer>2024-04-15 21:08:13 -0700
committerReed Riley <reed@riley.engineer>2024-04-15 21:08:13 -0700
commite5e8f203d77f90d1af8ebfd794eb1593582b85cc (patch)
tree4b247a45e411ea62d5af495eec775d3d48c40676 /mm/mm_init.c
parent6432d7745c1d0eba610fed85a8a6bac1864e858d (diff)
parent72cfb036b00a2c9f59a5d6ff1bc2d039ffb67490 (diff)
Merge branch 'memalloc_prof_v6' of https://github.com/surenbaghdasaryan/linux
Diffstat (limited to 'mm/mm_init.c')
-rw-r--r--mm/mm_init.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/mm/mm_init.c b/mm/mm_init.c
index 549e76af8f82..f45c2b32ba82 100644
--- a/mm/mm_init.c
+++ b/mm/mm_init.c
@@ -24,6 +24,7 @@
#include <linux/page_ext.h>
#include <linux/pti.h>
#include <linux/pgtable.h>
+#include <linux/stackdepot.h>
#include <linux/swap.h>
#include <linux/cma.h>
#include <linux/crash_dump.h>
@@ -2566,7 +2567,6 @@ void __init set_dma_reserve(unsigned long new_dma_reserve)
void __init memblock_free_pages(struct page *page, unsigned long pfn,
unsigned int order)
{
-
if (IS_ENABLED(CONFIG_DEFERRED_STRUCT_PAGE_INIT)) {
int nid = early_pfn_to_nid(pfn);
@@ -2578,6 +2578,17 @@ void __init memblock_free_pages(struct page *page, unsigned long pfn,
/* KMSAN will take care of these pages. */
return;
}
+
+ /* pages were reserved and not allocated */
+ if (mem_alloc_profiling_enabled()) {
+ union codetag_ref *ref = get_page_tag_ref(page);
+
+ if (ref) {
+ set_codetag_empty(ref);
+ put_page_tag_ref(ref);
+ }
+ }
+
__free_pages_core(page, order);
}