unsigned long usize = 0;
MA_STATE(mas, &mm->mm_mt, 0, 0);
+ rcu_read_lock();
mas_for_each(&mas, vma, ULONG_MAX)
usize += vma->vm_end - vma->vm_start;
+ rcu_read_unlock();
+
return usize;
}
}
if (mm->context == mfsp(3)) {
+ rcu_read_lock();
mas_for_each(&mas, vma, ULONG_MAX) {
flush_user_dcache_range_asm(vma->vm_start, vma->vm_end);
if (vma->vm_flags & VM_EXEC)
flush_user_icache_range_asm(vma->vm_start, vma->vm_end);
flush_tlb_range(vma, vma->vm_start, vma->vm_end);
}
+ rcu_read_unlock();
return;
}
pgd = mm->pgd;
+ rcu_read_lock();
mas_for_each(&mas, vma, ULONG_MAX) {
unsigned long addr;
}
}
}
+ rcu_unread_lock();
}
void flush_cache_range(struct vm_area_struct *vma,