diff mbox series

[v2] um: protect VMA iteration

Message ID 20221018121948.d7dd382b6c1f.I7b85b7dd326d2d078dabdd4ae40c35dc4ee1f3bc@changeid
State Changes Requested
Headers show
Series [v2] um: protect VMA iteration | expand

Commit Message

Johannes Berg Oct. 18, 2022, 10:19 a.m. UTC
From: Johannes Berg <johannes.berg@intel.com>

Due to changes in the iteration, there are now lockdep
checks indicating that we're missing locking here. Fix
that.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
 arch/um/kernel/tlb.c | 4 ++++
 1 file changed, 4 insertions(+)
diff mbox series

Patch

diff --git a/arch/um/kernel/tlb.c b/arch/um/kernel/tlb.c
index ad449173a1a1..2a5e266c3ed4 100644
--- a/arch/um/kernel/tlb.c
+++ b/arch/um/kernel/tlb.c
@@ -587,8 +587,10 @@  void flush_tlb_mm(struct mm_struct *mm)
 	struct vm_area_struct *vma;
 	VMA_ITERATOR(vmi, mm, 0);
 
+	mmap_read_lock();
 	for_each_vma(vmi, vma)
 		fix_range(mm, vma->vm_start, vma->vm_end, 0);
+	mmap_read_unlock();
 }
 
 void force_flush_all(void)
@@ -597,6 +599,8 @@  void force_flush_all(void)
 	struct vm_area_struct *vma;
 	VMA_ITERATOR(vmi, mm, 0);
 
+	mmap_read_lock();
 	for_each_vma(vmi, vma)
 		fix_range(mm, vma->vm_start, vma->vm_end, 1);
+	mmap_read_unlock();
 }