提交 b01578de 编写于 作者: M Marcelo Tosatti

x86: pvclock: make sure rdtsc doesnt speculate out of region

Originally from Jeremy Fitzhardinge.

pvclock_get_time_values, which contains the memory barriers
will be removed by next patch.
Signed-off-by: NMarcelo Tosatti <mtosatti@redhat.com>
上级 7069ed67
无相关合并请求
...@@ -97,10 +97,10 @@ cycle_t pvclock_clocksource_read(struct pvclock_vcpu_time_info *src) ...@@ -97,10 +97,10 @@ cycle_t pvclock_clocksource_read(struct pvclock_vcpu_time_info *src)
do { do {
version = pvclock_get_time_values(&shadow, src); version = pvclock_get_time_values(&shadow, src);
barrier(); rdtsc_barrier();
offset = pvclock_get_nsec_offset(&shadow); offset = pvclock_get_nsec_offset(&shadow);
ret = shadow.system_timestamp + offset; ret = shadow.system_timestamp + offset;
barrier(); rdtsc_barrier();
} while (version != src->version); } while (version != src->version);
if ((valid_flags & PVCLOCK_TSC_STABLE_BIT) && if ((valid_flags & PVCLOCK_TSC_STABLE_BIT) &&
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册
反馈
建议
客服 返回
顶部