And I still think flush_cache_vunmap() should be a smp_mb(). A smp_mb() in flush_cache_vmap() prevents subsequent accesses be reordered before pte_set(), and a smp_mb() in flush_cache_vunmap() prevents preceding accesses be reordered after pte_clear(). This potential problem may not be seen from experiment, but it is needed in theory. Huacai > + > #define cache_op(op, addr) \ > __asm__ __volatile__( \ > " cacop %0, %1 \n" \ > -- > 2.39.3 > >