On Thu, Sep 17, 2026 at 07:35:34PM +0000, Brett A C Sheffield wrote:
6.12.111-rc1 hangs on boot on this machine (AMD Ryzen 9 9950X).
[...]
# first 'bad' commit: [22ae428b0045981bd19f8c75f700a67198062f32] mm/hugetlb: initialize gigantic bootmem hugepage struct pages earlier
Thanks for the bisect, it lands exactly on the problem. Dropped from the 6.12 queue:
b1b7c045e808 ("mm/hugetlb: initialize gigantic bootmem hugepage struct pages earlier")
For the record, why it breaks only on 6.12: the backport moves gather_bootmem_prealloc() out of hugetlb_init() (a subsys_initcall) into page_alloc_init_late(), which runs well before do_basic_setup(). Upstream that reordering is safe because since v6.15 the per-node huge_boot_pages[] list heads are initialized unconditionally and very early in hugetlb_bootmem_alloc(). 6.12 has neither that function nor the commits that added it, so the only INIT_LIST_HEAD() of those lists is the lazy loop in hugetlb_hstate_alloc_pages(), reached early only when a gigantic hugepage is requested on the command line. Boot a CONFIG_HUGETLB_PAGE=y kernel without hugepagesz=/hugepages= and the relocated code walks an all-zero list head, so the first iteration dereferences NULL.
Nothing else in the queue depended on it, so it comes out on its own.