From: Jan Beulich Date: Tue, 13 Oct 2015 15:18:34 +0000 (+0200) Subject: x86/time: slightly streamline __update_vcpu_system_time() X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=838eefd6eb95af1009cd89feeb5dc02d365cf482;p=people%2Fjulieng%2Fxen-unstable.git 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 Reviewed-by: Andrew Cooper --- diff --git a/xen/arch/x86/time.c b/xen/arch/x86/time.c index b334f2fff5..5d7452a2bf 100644 --- a/xen/arch/x86/time.c +++ b/xen/arch/x86/time.c @@ -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;