diff --git a/mm/share_pool.c b/mm/share_pool.c index ea61f69cdd6ad239fdddf6488e4b0177df6f7616..c9079e6a40b1a0d25ce60e01a48dd37e53658443 100644 --- a/mm/share_pool.c +++ b/mm/share_pool.c @@ -2500,13 +2500,14 @@ static void sp_alloc_finish(int result, struct sp_area *spa, sp_update_process_stat(current, true, spa); /* this will free spa if mmap failed */ - if (spa && !IS_ERR(spa)) + if (spa && !IS_ERR(spa)) { __sp_area_drop(spa); + trace_sp_alloc_finish(ac, spa->va_start); + } if (!is_pass_through) sp_group_drop(spg); - trace_sp_alloc_finish(ac, spa->va_start); sp_dump_stack(); sp_try_to_compact(); }