diff --git a/arch/arm/include/asm/arch_timer.h b/arch/arm/include/asm/arch_timer.h index db0fdc4cc9cc21e55674a22b03108d9c398f8613..75975d9efd3f20567caac78b3a11929a3f23213a 100644 --- a/arch/arm/include/asm/arch_timer.h +++ b/arch/arm/include/asm/arch_timer.h @@ -49,6 +49,8 @@ static inline void arch_timer_reg_write(const int access, const int reg, u32 val break; } } + + isb(); } static inline u32 arch_timer_reg_read(const int access, const int reg) @@ -91,6 +93,7 @@ static inline u64 arch_counter_get_cntpct(void) { u64 cval; + isb(); asm volatile("mrrc p15, 0, %Q0, %R0, c14" : "=r" (cval)); return cval; } @@ -99,6 +102,7 @@ static inline u64 arch_counter_get_cntvct(void) { u64 cval; + isb(); asm volatile("mrrc p15, 1, %Q0, %R0, c14" : "=r" (cval)); return cval; }