On 2018-12-11 09:50, Oscar Salvador wrote:
- } else {
- pr_warn("failed to isolate pfn %lx\n", pfn);
- dump_page(page, "isolation failed");
- put_page(page);
- /* Because we don't have big zone->lock. we should
- check this again here. */
- if (page_count(page)) {
- not_managed++;
- ret = -EBUSY;
- break;
I forgot that here we should at least leave the put_page().
But leave also the dump_page() and the pr_warn().
--- a/mm/memory_hotplug.c
+++ b/mm/memory_hotplug.c
@@ -1394,6 +1394,10 @@ do_migrate_range(unsigned long start_pfn,
unsigned long end_pfn)
inc_node_page_state(page,
NR_ISOLATED_ANON +
page_is_file_cache(page));
+ } else {
+ pr_warn("failed to isolate pfn %lx\n", pfn);
+ dump_page(page, "isolation failed");
+ put_page(page);
}
}
if (!list_empty(&source)) {