Hi all, After merging the maple tree, today's linux-next build (arm64 defconfig) failed like this: arch/arm64/kernel/elfcore.c: In function 'elf_core_extra_phdrs': arch/arm64/kernel/elfcore.c:13:35: error: 'struct mm_struct' has no member named 'mmap' 13 | for (vma = tsk->mm->mmap; vma; vma = vma->vm_next) \ | ^~ arch/arm64/kernel/elfcore.c:69:9: note: in expansion of macro 'for_each_mte_vma' 69 | for_each_mte_vma(current, vma) | ^~~~~~~~~~~~~~~~ arch/arm64/kernel/elfcore.c:13:57: error: 'struct vm_area_struct' has no member named 'vm_next' 13 | for (vma = tsk->mm->mmap; vma; vma = vma->vm_next) \ | ^~ arch/arm64/kernel/elfcore.c:69:9: note: in expansion of macro 'for_each_mte_vma' 69 | for_each_mte_vma(current, vma) | ^~~~~~~~~~~~~~~~ arch/arm64/kernel/elfcore.c: In function 'elf_core_write_extra_phdrs': arch/arm64/kernel/elfcore.c:13:35: error: 'struct mm_struct' has no member named 'mmap' 13 | for (vma = tsk->mm->mmap; vma; vma = vma->vm_next) \ | ^~ arch/arm64/kernel/elfcore.c:79:9: note: in expansion of macro 'for_each_mte_vma' 79 | for_each_mte_vma(current, vma) { | ^~~~~~~~~~~~~~~~ arch/arm64/kernel/elfcore.c:13:57: error: 'struct vm_area_struct' has no member named 'vm_next' 13 | for (vma = tsk->mm->mmap; vma; vma = vma->vm_next) \ | ^~ arch/arm64/kernel/elfcore.c:79:9: note: in expansion of macro 'for_each_mte_vma' 79 | for_each_mte_vma(current, vma) { | ^~~~~~~~~~~~~~~~ arch/arm64/kernel/elfcore.c: In function 'elf_core_extra_data_size': arch/arm64/kernel/elfcore.c:13:35: error: 'struct mm_struct' has no member named 'mmap' 13 | for (vma = tsk->mm->mmap; vma; vma = vma->vm_next) \ | ^~ arch/arm64/kernel/elfcore.c:104:9: note: in expansion of macro 'for_each_mte_vma' 104 | for_each_mte_vma(current, vma) | ^~~~~~~~~~~~~~~~ arch/arm64/kernel/elfcore.c:13:57: error: 'struct vm_area_struct' has no member named 'vm_next' 13 | for (vma = tsk->mm->mmap; vma; vma = vma->vm_next) \ | ^~ arch/arm64/kernel/elfcore.c:104:9: note: in expansion of macro 'for_each_mte_vma' 104 | for_each_mte_vma(current, vma) | ^~~~~~~~~~~~~~~~ arch/arm64/kernel/elfcore.c: In function 'elf_core_write_extra_data': arch/arm64/kernel/elfcore.c:13:35: error: 'struct mm_struct' has no member named 'mmap' 13 | for (vma = tsk->mm->mmap; vma; vma = vma->vm_next) \ | ^~ arch/arm64/kernel/elfcore.c:114:9: note: in expansion of macro 'for_each_mte_vma' 114 | for_each_mte_vma(current, vma) { | ^~~~~~~~~~~~~~~~ arch/arm64/kernel/elfcore.c:13:57: error: 'struct vm_area_struct' has no member named 'vm_next' 13 | for (vma = tsk->mm->mmap; vma; vma = vma->vm_next) \ | ^~ arch/arm64/kernel/elfcore.c:114:9: note: in expansion of macro 'for_each_mte_vma' 114 | for_each_mte_vma(current, vma) { | ^~~~~~~~~~~~~~~~ Caused by commit b09e8361a4c3 ("mm: Remove the vma linked list") interacting with commit 6dd8b1a0b6cb ("arm64: mte: Dump the MTE tags in the core file") from the arm64 tree. I have applied the following merge fix patch for today: From: Stephen Rothwell Date: Thu, 17 Feb 2022 19:12:41 +1100 Subject: [PATCH] fix up for "arm64: mte: Dump the MTE tags in the core file" Signed-off-by: Stephen Rothwell --- arch/arm64/kernel/elfcore.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/arch/arm64/kernel/elfcore.c b/arch/arm64/kernel/elfcore.c index 3455ee4acc04..35f99088825e 100644 --- a/arch/arm64/kernel/elfcore.c +++ b/arch/arm64/kernel/elfcore.c @@ -8,9 +8,9 @@ #include #include -#define for_each_mte_vma(tsk, vma) \ +#define for_each_mte_vma(mas, vma) \ if (system_supports_mte()) \ - for (vma = tsk->mm->mmap; vma; vma = vma->vm_next) \ + mas_for_each(&mas, vma, ULONG_MAX) \ if (vma->vm_flags & VM_MTE) static unsigned long mte_vma_tag_dump_size(struct vm_area_struct *vma) @@ -64,9 +64,10 @@ static int mte_dump_tag_range(struct coredump_params *cprm, Elf_Half elf_core_extra_phdrs(void) { struct vm_area_struct *vma; + MA_STATE(mas, ¤t->mm->mm_mt, 0, 0); int vma_count = 0; - for_each_mte_vma(current, vma) + for_each_mte_vma(mas, vma) vma_count++; return vma_count; @@ -75,8 +76,9 @@ Elf_Half elf_core_extra_phdrs(void) int elf_core_write_extra_phdrs(struct coredump_params *cprm, loff_t offset) { struct vm_area_struct *vma; + MA_STATE(mas, ¤t->mm->mm_mt, 0, 0); - for_each_mte_vma(current, vma) { + for_each_mte_vma(mas, vma) { struct elf_phdr phdr; phdr.p_type = PT_ARM_MEMTAG_MTE; @@ -99,9 +101,10 @@ int elf_core_write_extra_phdrs(struct coredump_params *cprm, loff_t offset) size_t elf_core_extra_data_size(void) { struct vm_area_struct *vma; + MA_STATE(mas, ¤t->mm->mm_mt, 0, 0); size_t data_size = 0; - for_each_mte_vma(current, vma) + for_each_mte_vma(mas, vma) data_size += mte_vma_tag_dump_size(vma); return data_size; @@ -110,8 +113,9 @@ size_t elf_core_extra_data_size(void) int elf_core_write_extra_data(struct coredump_params *cprm) { struct vm_area_struct *vma; + MA_STATE(mas, ¤t->mm->mm_mt, 0, 0); - for_each_mte_vma(current, vma) { + for_each_mte_vma(mas, vma) { if (vma->vm_flags & VM_DONTDUMP) continue; -- 2.34.1 -- Cheers, Stephen Rothwell