diff --git a/mm/rmap.c b/mm/rmap.c
index 4ace1e32f705364eec7b05218b6a66b84b4ea82a..83cc459edc407fc26392df777bebd15ce5df419b 100644
--- a/mm/rmap.c
+++ b/mm/rmap.c
@@ -672,7 +672,7 @@ static bool should_defer_flush(struct mm_struct *mm, enum ttu_flags flags)
  */
 void flush_tlb_batched_pending(struct mm_struct *mm)
 {
-	if (mm->tlb_flush_batched) {
+	if (data_race(mm->tlb_flush_batched)) {
 		flush_tlb_mm(mm);
 
 		/*