build error: mm: prevent racy access to tlb_flush_pending
Hello,
8c636138f497b36ae95f ("mm: prevent racy access to tlb_flush_pending") kills the build
kernel/fork.c: In function ‘mm_init’:kernel/fork.c:810:18: error: ‘struct mm_struct’ has no member named ‘tlb_flush_pending’; did you mean ‘tlb_flush_batched’?
atomic_set(&mm->tlb_flush_pending, 0);
^~~~~~~~~~~~~~~~~
tlb_flush_batchedreplacing clear_tlb_flush_pending() with a direct ->tlb_flush_pending access
@@ -807,7 +807,7 @@ static struct mm_struct *mm_init(struct mm_struct *mm, struct task_struct *p,
mm_init_aio(mm);
mm_init_owner(mm, p);
mmu_notifier_mm_init(mm);- clear_tlb_flush_pending(mm);
+ atomic_set(&mm->tlb_flush_pending, 0);
doesn't work on on !CONFIG_NUMA_BALANCING && !CONFIG_COMPACTION systems.
-ss
Quoted 26 lines · Sergey Senozhatsky
Hello,
8c636138f497b36ae95f("mm: prevent racy access totlb_flush_pending") kills the build
kernel/fork.c: In function ‘mm_init’:kernel/fork.c:810:18: error: ‘struct mm_struct’ has no member named ‘tlb_flush_pending’; did you mean ‘tlb_flush_batched’?atomic_set(&mm->tlb_flush_pending, 0); ^~~~~~~~~~~~~~~~~ tlb_flush_batchedreplacing
clear_tlb_flush_pending()with a direct ->tlb_flush_pending access(quoted diff) +1
-1@@ -807,7 +807,7 @@ static struct mm_struct *mm_init(struct mm_struct *mm, struct task_struct *p, mm_init_aio(mm); mm_init_owner(mm, p); mmu_notifier_mm_init(mm); - clear_tlb_flush_pending(mm); + atomic_set(&mm->tlb_flush_pending, 0);doesn't work on on !CONFIG_NUMA_BALANCING && !CONFIG_COMPACTION systems.
Quoted 1 line
-ss
Missed this one. Thanks, I will fix it for v3.
When Minchan repurpose this field, he should remove all of these defines (including those in mm_types.h).
Minchan, do you want me to do it?
Nadav