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_batched
replacing 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
Sergey Senozhatsky <[email protected]> wrote:
> 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_batched
>
>
>
> replacing 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
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