Currently arch_counter_get_cnt{p,v}ct can be speculated, allowing for
stale time values to be read. This could be problematic for the delay
loop and other sensitive functions, as the time delta could jump around
unexpectedly.
This patch adds isbs to arch_counter_get_cnt{p,v}ct, preventing this
possibility.
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
{
cycle_t cval;
+ isb();
asm volatile("mrs %0, cntpct_el0" : "=r" (cval));
return cval;
{
cycle_t cval;
+ isb();
asm volatile("mrs %0, cntvct_el0" : "=r" (cval));
return cval;