sparse.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff -upN reference/mm/sparse.c current/mm/sparse.c --- reference/mm/sparse.c +++ current/mm/sparse.c @@ -281,9 +281,9 @@ int sparse_add_one_section(struct zone * ret = sparse_init_one_section(ms, section_nr, memmap); - if (ret <= 0) - __kfree_section_memmap(memmap, nr_pages); out: pgdat_resize_unlock(pgdat, &flags); + if (ret <= 0) + __kfree_section_memmap(memmap, nr_pages); return ret; }