mainline build failure due to b67fbebd4cf9 ("mmu_gather: Force tlb-flush VM_PFNMAP vmas")
Hi All,
The latest mainline kernel branch fails to build for alpha allmodconfig with the error:
In file included from ./arch/alpha/include/asm/tlb.h:5,
from mm/oom_kill.c:48:
./include/asm-generic/tlb.h:401:1: error: redefinition of 'tlb_update_vma_flags'
401 | tlb_update_vma_flags(struct mmu_gather *tlb, struct vm_area_struct *vma)
| ^~~~~~~~~~~~~~~~~~~~
./include/asm-generic/tlb.h:372:1: note: previous definition of 'tlb_update_vma_flags' with type 'void(struct mmu_gather *, struct vm_area_struct *)'
372 | tlb_update_vma_flags(struct mmu_gather *tlb, struct vm_area_struct *vma) { }
| ^~~~~~~~~~~~~~~~~~~~
In file included from ./arch/alpha/include/asm/tlb.h:5,
from arch/alpha/mm/init.c:32:
./include/asm-generic/tlb.h:401:1: error: redefinition of 'tlb_update_vma_flags'
401 | tlb_update_vma_flags(struct mmu_gather *tlb, struct vm_area_struct *vma)
| ^~~~~~~~~~~~~~~~~~~~
./include/asm-generic/tlb.h:372:1: note: previous definition of 'tlb_update_vma_flags' with type 'void(struct mmu_gather *, struct vm_area_struct *)'
372 | tlb_update_vma_flags(struct mmu_gather *tlb, struct vm_area_struct *vma) { }
| ^~~~~~~~~~~~~~~~~~~~In file included from ./arch/alpha/include/asm/tlb.h:5,
from kernel/sched/core.c:77:./include/asm-generic/tlb.h:401:1: error: redefinition of 'tlb_update_vma_flags'
401 | tlb_update_vma_flags(struct mmu_gather *tlb, struct vm_area_struct *vma)
| ^~~~~~~~~~~~~~~~~~~~
./include/asm-generic/tlb.h:372:1: note: previous definition of 'tlb_update_vma_flags' with type 'void(struct mmu_gather *, struct vm_area_struct *)'
372 | tlb_update_vma_flags(struct mmu_gather *tlb, struct vm_area_struct *vma) { }
| ^~~~~~~~~~~~~~~~~~~~
In file included from ./arch/alpha/include/asm/tlb.h:5,
from fs/proc/task_mmu.c:25:
./include/asm-generic/tlb.h:401:1: error: redefinition of 'tlb_update_vma_flags'
401 | tlb_update_vma_flags(struct mmu_gather *tlb, struct vm_area_struct *vma)
| ^~~~~~~~~~~~~~~~~~~~
./include/asm-generic/tlb.h:372:1: note: previous definition of 'tlb_update_vma_flags' with type 'void(struct mmu_gather *, struct vm_area_struct *)'
372 | tlb_update_vma_flags(struct mmu_gather *tlb, struct vm_area_struct *vma) { }
| ^~~~~~~~~~~~~~~~~~~~git bisect pointed to b67fbebd4cf9 ("mmu_gather: Force tlb-flush VM_PFNMAP vmas"). And, reverting that commit has fixed the build failure.
I will be happy to test any patch or provide any extra log if needed.
--
Regards
Sudip
Quoted 3 lines · Sudip Mukherjee (Codethink)
The latest mainline kernel branch fails to build for alpha allmodconfig with the error:
Gaah. It's the odd MMU_GATHER_NO_RANGE architectures - alpha, m68k, microblaze, nios2 and openrisc.
We should probably get rid of that oddity, and force everybody to have the ranged tlb flush functions, but for now the trivial patch is to just remove the left-over dummy tlb_update_vma_flags() from that case, I think.
Trivial patch attached. I don't have any cross-compiler for those architectures on my machine, but I suspect I'll just commit it as-is even without testing, since it can't be worse than what the situation is right now with that "redefinition of 'tlb_update_vma_flags'"
But if you can verify, that would be lovely.
Linus
include/asm-generic/tlb.h | 3 --- 1 file changed, 3 deletions(-)
include/asm-generic/tlb.h +0 -3
@@ -368,9 +368,6 @@ static inline void tlb_flush(struct mmu_gather *tlb) flush_tlb_mm(tlb->mm); } -static inline void -tlb_update_vma_flags (struct mmu_gather *tlb,struct vm_area_struct *vma) { } -#else /* CONFIG_MMU_GATHER_NO_RANGE */ #ifndef tlb_flush
Quoted 15 lines · Linus Torvalds
Quoted 3 lines · Sudip Mukherjee (Codethink)
The latest mainline kernel branch fails to build for alpha allmodconfig with the error:
Gaah. It's the odd
MMU_GATHER_NO_RANGEarchitectures - alpha, m68k, microblaze, nios2 and openrisc.We should probably get rid of that oddity, and force everybody to have the ranged tlb flush functions, but for now the trivial patch is to just remove the left-over dummy
tlb_update_vma_flags()from that case, I think.
Quoted 4 lines
Trivial patch attached. I don't have any cross-compiler for those architectures on my machine, but I suspect I'll just commit it as-is even without testing, since it can't be worse than what the situation is right now with that "redefinition of '
tlb_update_vma_flags'"
That fixes the alpha build failure.
If you commit it today then my nightly builds can test other combinations of all other arch also.
Signature · 2 lines
Regards Sudip
Quoted 4 lines · Sudip Mukherjee
That fixes the alpha build failure.
If you commit it today then my nightly builds can test other combinations of all other arch also.
Thanks.
It's commit 7fb5e5083190 ("mmu_gather: fix theCONFIG_MMU_GATHER_NO_RANGE case") in my tree now.
I decided to not amend the commit, so it doesn't have your tested-by, only your reported-by, but I put the link your report (this thread), so it's kind of there.
Linus