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);
}
}