Skip to contentSkip to conversation

build error: mm: prevent racy access to tlb_flush_pending

mmots Sergey Senozhatsky 2 participants 2 messages Jul 27, 2017

lore
Share & tools
lore
#0 lore raw

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
#1 lore raw
Quoted 26 lines · Sergey Senozhatsky

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

(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