diff --git a/drivers/amlogic/memory_ext/aml_cma.c b/drivers/amlogic/memory_ext/aml_cma.c index c75b823eb03a..3f82e3bb5b25 100644 --- a/drivers/amlogic/memory_ext/aml_cma.c +++ b/drivers/amlogic/memory_ext/aml_cma.c @@ -238,11 +238,13 @@ static struct page *get_migrate_page(struct page *page, unsigned long private, next_node_in(page_to_nid(page), node_online_map)); #ifdef CONFIG_AMLOGIC_PAGE_TRACE + #ifdef CONFIG_HUGETLB_PAGE if (new) { old_trace = find_page_base(page); new_trace = find_page_base(new); *new_trace = *old_trace; } + #endif #endif return new; } diff --git a/drivers/amlogic/memory_ext/page_trace.c b/drivers/amlogic/memory_ext/page_trace.c index 610e4006f228..dfa78929de82 100644 --- a/drivers/amlogic/memory_ext/page_trace.c +++ b/drivers/amlogic/memory_ext/page_trace.c @@ -589,7 +589,6 @@ static void __init set_init_page_trace(struct page *page, int order, gfp_t flag) text = (unsigned long)_text; trace.ret_ip = (ip - text) >> 2; - WARN_ON(trace.ret_ip > IP_RANGE_MASK); trace.migrate_type = gfpflags_to_migratetype(flag); trace.order = order; base = find_page_base(page); @@ -1266,9 +1265,9 @@ int slab_trace_add_page(struct page *page, int order, return 0; nomem: - kfree(trace); pr_err("%s, failed to trace obj %p for %s, trace:%p\n", __func__, page_address(page), s->name, trace); + kfree(trace); return -ENOMEM; }