diff --git a/mm/sparse.c b/mm/sparse.c index 46f6ea47d9ab36a263fea674c99045fd0cd80c5a..cff97960f1d795172d142275f5dcb21f463a84d2 100644 --- a/mm/sparse.c +++ b/mm/sparse.c @@ -698,7 +698,7 @@ static void free_section_usemap(struct page *memmap, unsigned long *usemap) /* * Check to see if allocation came from hot-plug-add */ - if (PageSlab(usemap_page)) { + if (PageSlab(usemap_page) || PageCompound(usemap_page)) { kfree(usemap); if (memmap) __kfree_section_memmap(memmap, PAGES_PER_SECTION);