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)) {

Reply via email to