Commit 126ad898a6e9 for kernel

commit 126ad898a6e97fcb4c3fbe6d979829f72b8c348c
Merge: b3593aba3153 9a6a70aefe77
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Sun Oct 25 17:42:42 2026 -1000

    Merge tag 'liveupdate-v7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/liveupdate/linux

    Pull liveupdate updates from Mike Rapoport:

     - Several small fixes to KHO and LiveUpdate selftest

     - A series that renames "KHO scratch" to "KHO bootmem" because this
       memory is way more important in kexec'ed kernels rather than in the
       original cold boot kernel and the new name reflects it

    * tag 'liveupdate-v7.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/liveupdate/linux:
      kho: do not reserve empty per-node bootmem areas
      selftests/liveupdate: Prefer KVM and HVF over TCG in vmtest.sh
      kho: rename kho_scratch= commandline parameter to kho_bootmem=
      kho: rename KHO scratch to KHO bootmem
      memblock: rename KHO_SCRATCH to KHO_NOPRSRV
      memblock: get rid of CONFIG_MEMBLOCK_KHO_SCRATCH
      kho: docs: fix scratch_phys debugfs cross-reference
      kho: do not reserve scratch memory in the kdump kernel

diff --cc include/linux/memblock.h
index 01a2dea5aa11,aaa11a589843..40e6e0aa2f8d
--- a/include/linux/memblock.h
+++ b/include/linux/memblock.h
@@@ -158,10 -158,11 +158,10 @@@ int memblock_mark_nomap(phys_addr_t bas
  int memblock_clear_nomap(phys_addr_t base, phys_addr_t size);
  int memblock_reserved_mark_noinit(phys_addr_t base, phys_addr_t size);
  int memblock_reserved_mark_kern(phys_addr_t base, phys_addr_t size);
- int memblock_mark_kho_scratch(phys_addr_t base, phys_addr_t size);
- int memblock_clear_kho_scratch(phys_addr_t base, phys_addr_t size);
+ int memblock_mark_kho_noprsrv(phys_addr_t base, phys_addr_t size);
+ int memblock_clear_kho_noprsrv(phys_addr_t base, phys_addr_t size);

  void memblock_free(void *ptr, size_t size);
 -void reset_all_zones_managed_pages(void);

  /* Low level functions */
  void __next_mem_range(u64 *idx, int nid, enum memblock_flags flags,
diff --cc mm/memblock.c
index fa2754ccd491,f5aaa38cfa31..a450092a80fb
--- a/mm/memblock.c
+++ b/mm/memblock.c
@@@ -2852,8 -2885,7 +2852,8 @@@ static const char * const flagname[] =
  	[ilog2(MEMBLOCK_DRIVER_MANAGED)] = "DRV_MNG",
  	[ilog2(MEMBLOCK_RSRV_NOINIT)] = "RSV_NIT",
  	[ilog2(MEMBLOCK_RSRV_KERN)] = "RSV_KERN",
- 	[ilog2(MEMBLOCK_KHO_SCRATCH)] = "KHO_SCRATCH",
+ 	[ilog2(MEMBLOCK_KHO_NOPRSRV)] = "KHO_NOPRSRV",
 +	[ilog2(MEMBLOCK_RSRV_HUGETLB)] = "RSV_HUGETLB",
  };

  static int memblock_debug_show(struct seq_file *m, void *private)
diff --cc mm/mm_init.c
index c18e722282e7,24a53d5f0893..41a27860d2f6
--- a/mm/mm_init.c
+++ b/mm/mm_init.c
@@@ -684,10 -684,10 +684,10 @@@ static __meminit void pageblock_migrate
  	const unsigned long end = pfn + nr_pages;

  	for (pfn = pageblock_align(pfn); pfn < end; pfn += pageblock_nr_pages) {
- 		enum migratetype mt = kho_scratch_migratetype(pfn, migratetype);
+ 		enum migratetype mt = kho_bootmem_migratetype(pfn, migratetype);

 -		init_pageblock_migratetype(pfn_to_page(pfn), mt, false);
 -		if (!atomic && IS_ALIGNED(pfn, PAGES_PER_SECTION))
 +		init_pageblock_migratetype(pfn_to_page(pfn), mt, isolate);
 +		if (!atomic && IS_ALIGNED(pfn, PFN_DOWN(SZ_1G)))
  			cond_resched();
  	}
  }
@@@ -769,12 -757,17 +769,12 @@@ static void __meminit __init_deferred_p
  	if (early_page_initialised(pfn, nid))
  		return;

 -	for (zid = 0; zid < MAX_NR_ZONES; zid++) {
 -		struct zone *zone = &pgdat->node_zones[zid];
 -
 -		if (zone_spans_pfn(zone, pfn))
 -			break;
 -	}
 -	__init_single_page(pfn_to_page(pfn), pfn, zid, nid);
 -
 +	zone = pfn_to_zone(pfn, nid);
 +	__init_single_page(pfn_to_page(pfn), pfn,
 +			   zone ? zone_idx(zone) : MAX_NR_ZONES, nid);
  	if (pageblock_aligned(pfn)) {
  		enum migratetype mt =
- 			kho_scratch_migratetype(pfn, MIGRATE_MOVABLE);
+ 			kho_bootmem_migratetype(pfn, MIGRATE_MOVABLE);
  		init_pageblock_migratetype(pfn_to_page(pfn), mt, false);
  	}
  }