int nr_pass)
 {
        int retry = 1;
-       int large_retry = 1;
        int thp_retry = 1;
        int nr_failed = 0;
        int nr_retry_pages = 0;
-       int nr_large_failed = 0;
        int pass = 0;
-       bool is_large = false;
        bool is_thp = false;
        struct folio *folio, *folio2, *dst = NULL, *dst2;
        int rc, rc_saved = 0, nr_pages;
        VM_WARN_ON_ONCE(mode != MIGRATE_ASYNC &&
                        !list_empty(from) && !list_is_singular(from));
 
-       for (pass = 0; pass < nr_pass && (retry || large_retry); pass++) {
+       for (pass = 0; pass < nr_pass && retry; pass++) {
                retry = 0;
-               large_retry = 0;
                thp_retry = 0;
                nr_retry_pages = 0;
 
                list_for_each_entry_safe(folio, folio2, from, lru) {
-                       /*
-                        * Large folio statistics is based on the source large
-                        * folio. Capture required information that might get
-                        * lost during migration.
-                        */
-                       is_large = folio_test_large(folio);
-                       is_thp = is_large && folio_test_pmd_mappable(folio);
+                       is_thp = folio_test_large(folio) && folio_test_pmd_mappable(folio);
                        nr_pages = folio_nr_pages(folio);
 
                        cond_resched();
                         * list is processed.
                         */
                        if (!thp_migration_supported() && is_thp) {
-                               nr_large_failed++;
+                               nr_failed++;
                                stats->nr_thp_failed++;
                                if (!try_split_folio(folio, split_folios)) {
                                        stats->nr_thp_split++;
                                 * When memory is low, don't bother to try to migrate
                                 * other folios, move unmapped folios, then exit.
                                 */
-                               if (is_large) {
-                                       nr_large_failed++;
-                                       stats->nr_thp_failed += is_thp;
-                                       /* Large folio NUMA faulting doesn't split to retry. */
-                                       if (!nosplit) {
-                                               int ret = try_split_folio(folio, split_folios);
-
-                                               if (!ret) {
-                                                       stats->nr_thp_split += is_thp;
-                                                       break;
-                                               } else if (reason == MR_LONGTERM_PIN &&
-                                                          ret == -EAGAIN) {
-                                                       /*
-                                                        * Try again to split large folio to
-                                                        * mitigate the failure of longterm pinning.
-                                                        */
-                                                       large_retry++;
-                                                       thp_retry += is_thp;
-                                                       nr_retry_pages += nr_pages;
-                                                       /* Undo duplicated failure counting. */
-                                                       nr_large_failed--;
-                                                       stats->nr_thp_failed -= is_thp;
-                                                       break;
-                                               }
+                               nr_failed++;
+                               stats->nr_thp_failed += is_thp;
+                               /* Large folio NUMA faulting doesn't split to retry. */
+                               if (folio_test_large(folio) && !nosplit) {
+                                       int ret = try_split_folio(folio, split_folios);
+
+                                       if (!ret) {
+                                               stats->nr_thp_split += is_thp;
+                                               break;
+                                       } else if (reason == MR_LONGTERM_PIN &&
+                                                  ret == -EAGAIN) {
+                                               /*
+                                                * Try again to split large folio to
+                                                * mitigate the failure of longterm pinning.
+                                                */
+                                               retry++;
+                                               thp_retry += is_thp;
+                                               nr_retry_pages += nr_pages;
+                                               /* Undo duplicated failure counting. */
+                                               nr_failed--;
+                                               stats->nr_thp_failed -= is_thp;
+                                               break;
                                        }
-                               } else {
-                                       nr_failed++;
                                }
 
                                stats->nr_failed_pages += nr_pages + nr_retry_pages;
                                /* nr_failed isn't updated for not used */
-                               nr_large_failed += large_retry;
                                stats->nr_thp_failed += thp_retry;
                                rc_saved = rc;
                                if (list_empty(&unmap_folios))
                                else
                                        goto move;
                        case -EAGAIN:
-                               if (is_large) {
-                                       large_retry++;
-                                       thp_retry += is_thp;
-                               } else {
-                                       retry++;
-                               }
+                               retry++;
+                               thp_retry += is_thp;
                                nr_retry_pages += nr_pages;
                                break;
                        case MIGRATEPAGE_SUCCESS:
                                 * removed from migration folio list and not
                                 * retried in the next outer loop.
                                 */
-                               if (is_large) {
-                                       nr_large_failed++;
-                                       stats->nr_thp_failed += is_thp;
-                               } else {
-                                       nr_failed++;
-                               }
-
+                               nr_failed++;
+                               stats->nr_thp_failed += is_thp;
                                stats->nr_failed_pages += nr_pages;
                                break;
                        }
                }
        }
        nr_failed += retry;
-       nr_large_failed += large_retry;
        stats->nr_thp_failed += thp_retry;
        stats->nr_failed_pages += nr_retry_pages;
 move:
        try_to_unmap_flush();
 
        retry = 1;
-       for (pass = 0; pass < nr_pass && (retry || large_retry); pass++) {
+       for (pass = 0; pass < nr_pass && retry; pass++) {
                retry = 0;
-               large_retry = 0;
                thp_retry = 0;
                nr_retry_pages = 0;
 
                dst = list_first_entry(&dst_folios, struct folio, lru);
                dst2 = list_next_entry(dst, lru);
                list_for_each_entry_safe(folio, folio2, &unmap_folios, lru) {
-                       is_large = folio_test_large(folio);
-                       is_thp = is_large && folio_test_pmd_mappable(folio);
+                       is_thp = folio_test_large(folio) && folio_test_pmd_mappable(folio);
                        nr_pages = folio_nr_pages(folio);
 
                        cond_resched();
                         */
                        switch(rc) {
                        case -EAGAIN:
-                               if (is_large) {
-                                       large_retry++;
-                                       thp_retry += is_thp;
-                               } else {
-                                       retry++;
-                               }
+                               retry++;
+                               thp_retry += is_thp;
                                nr_retry_pages += nr_pages;
                                break;
                        case MIGRATEPAGE_SUCCESS:
                                stats->nr_thp_succeeded += is_thp;
                                break;
                        default:
-                               if (is_large) {
-                                       nr_large_failed++;
-                                       stats->nr_thp_failed += is_thp;
-                               } else {
-                                       nr_failed++;
-                               }
-
+                               nr_failed++;
+                               stats->nr_thp_failed += is_thp;
                                stats->nr_failed_pages += nr_pages;
                                break;
                        }
                }
        }
        nr_failed += retry;
-       nr_large_failed += large_retry;
        stats->nr_thp_failed += thp_retry;
        stats->nr_failed_pages += nr_retry_pages;
 
-       if (rc_saved)
-               rc = rc_saved;
-       else
-               rc = nr_failed + nr_large_failed;
+       rc = rc_saved ? : nr_failed;
 out:
        /* Cleanup remaining folios */
        dst = list_first_entry(&dst_folios, struct folio, lru);