x86/time: slightly streamline __update_vcpu_system_time()

Fold two if()-s using the same condition, converting the memset() so
far separating them to a simple initializer. Move common assignments
out of the conditional. Drop an unnecessary initializer.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
This commit is contained in:
Jan Beulich committed 2015-10-13 17:18:34 +02:00
1 parent 941cd44324
commit 838eefd6eb
1 file changed
+8 -15
+8 -15
View File
@@ -790,9 +790,9 @@ uint64_t tsc_ticks2ns(uint64_t ticks)
static void __update_vcpu_system_time(struct vcpu *v, int force)
{
struct cpu_time *t;
struct vcpu_time_info *u, _u;
struct vcpu_time_info *u, _u = {};
struct domain *d = v->domain;
s_time_t tsc_stamp = 0;
s_time_t tsc_stamp;
if ( v->vcpu_info == NULL )
return;
@@ -816,28 +816,21 @@ static void __update_vcpu_system_time(struct vcpu *v, int force)
}
else
tsc_stamp = gtime_to_gtsc(d, stime);
}
else
{
tsc_stamp = t->local_tsc_stamp;
}
memset(&_u, 0, sizeof(_u));
if ( d->arch.vtsc )
{
_u.tsc_timestamp = tsc_stamp;
_u.system_time = t->stime_local_stamp;
_u.tsc_to_system_mul = d->arch.vtsc_to_ns.mul_frac;
_u.tsc_shift = d->arch.vtsc_to_ns.shift;
}
else
{
_u.tsc_timestamp = t->local_tsc_stamp;
_u.system_time = t->stime_local_stamp;
tsc_stamp = t->local_tsc_stamp;
_u.tsc_to_system_mul = t->tsc_scale.mul_frac;
_u.tsc_shift = (s8)t->tsc_scale.shift;
}
_u.tsc_timestamp = tsc_stamp;
_u.system_time = t->stime_local_stamp;
if ( is_hvm_domain(d) )
_u.tsc_timestamp += v->arch.hvm_vcpu.cache_tsc_offset;
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.