|
@@ -920,7 +920,7 @@ static ssize_t show_idle_count(struct device *dev,
|
|
|
idle_count = ACCESS_ONCE(idle->idle_count);
|
|
|
if (ACCESS_ONCE(idle->clock_idle_enter))
|
|
|
idle_count++;
|
|
|
- } while ((sequence & 1) || (idle->sequence != sequence));
|
|
|
+ } while ((sequence & 1) || (ACCESS_ONCE(idle->sequence) != sequence));
|
|
|
return sprintf(buf, "%llu\n", idle_count);
|
|
|
}
|
|
|
static DEVICE_ATTR(idle_count, 0444, show_idle_count, NULL);
|
|
@@ -938,7 +938,7 @@ static ssize_t show_idle_time(struct device *dev,
|
|
|
idle_time = ACCESS_ONCE(idle->idle_time);
|
|
|
idle_enter = ACCESS_ONCE(idle->clock_idle_enter);
|
|
|
idle_exit = ACCESS_ONCE(idle->clock_idle_exit);
|
|
|
- } while ((sequence & 1) || (idle->sequence != sequence));
|
|
|
+ } while ((sequence & 1) || (ACCESS_ONCE(idle->sequence) != sequence));
|
|
|
idle_time += idle_enter ? ((idle_exit ? : now) - idle_enter) : 0;
|
|
|
return sprintf(buf, "%llu\n", idle_time >> 12);
|
|
|
}
|