Re: [PATCH 6.12 0000/1102] 6.12.111-rc1 review
From: Sasha Levin
Date: Fri Sep 18 2026 - 12:42:01 EST
On Thu, Sep 17, 2026 at 10:18:32PM +0200, Pavel Machek wrote:
> drivers/net/ethernet/ti/cpsw.c: In function 'cpsw_ndo_set_rx_mode_work':
> ./include/linux/container_of.h:20:54: error: 'struct cpsw_priv' has no
> member named 'rx_mode_work'
Dropped from the 6.12 and 6.6 queues:
0b8c878d1173 ("net: cpsw: Execute ndo_set_rx_mode callback in a work
queue")
It only touches drivers/net/ethernet/ti/cpsw.c, but the
'struct work_struct rx_mode_work' member it uses is added to cpsw_priv.h
by a different commit, c0b5dc73a38f ("net: cpsw_new: Execute
ndo_set_rx_mode callback in a work queue"), which isn't queued anywhere.
6.6 additionally lacks disable_work_sync(), so it could not have built
there either.
> I don't have good diagnostic for runtime problem on arm. Example is here:
> (hang)
> It is better on x86:
> L328[ 0.264887] RIP: 0010:gather_bootmem_prealloc_parallel+0x117/0x250
[...]
> L343[ 0.264887] hugetlb_bootmem_struct_page_init+0x6f/0x90
That one is a second, independent problem, also dropped from the 6.12
queue:
b1b7c045e808 ("mm/hugetlb: initialize gigantic bootmem hugepage
struct pages earlier")
The backport moves gather_bootmem_prealloc() into page_alloc_init_late(), which
on 6.12 runs before anything initializes the per-node huge_boot_pages[] list
heads - upstream that happens unconditionally in hugetlb_bootmem_alloc() since
v6.15, which 6.12 does not have. Without hugepagesz=/hugepages= on the command
line the list head is still all zeroes, so the first list_for_each_entry()
iteration yields NULL and m->hstate faults - which matches your log exactly
(CR2 0000000000000010, 'mov r15,[r12+0x10]' with r12 == 0, .hstate sitting at
offset 0x10 in struct huge_bootmem_page).
Two independent bisects from Brett Sheffield and Peter Schneider landed on the
same commit.
--
Thanks,
Sasha