[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v6 15/29] xen/x86: allow disabling the emulated RTC
Signed-off-by: Roger Pau Monnà <roger.pau@xxxxxxxxxx> Acked-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Cc: Jan Beulich <jbeulich@xxxxxxxx> Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> --- Changes since v4: - Add Andrew Cooper Acked-by. --- xen/arch/x86/hvm/rtc.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/xen/arch/x86/hvm/rtc.c b/xen/arch/x86/hvm/rtc.c index a9efeaf..bc93f66 100644 --- a/xen/arch/x86/hvm/rtc.c +++ b/xen/arch/x86/hvm/rtc.c @@ -726,6 +726,9 @@ void rtc_migrate_timers(struct vcpu *v) { RTCState *s = vcpu_vrtc(v); + if ( !has_vrtc(v->domain) ) + return; + if ( v->vcpu_id == 0 ) { migrate_timer(&s->update_timer, v->processor);; @@ -739,6 +742,10 @@ static int rtc_save(struct domain *d, hvm_domain_context_t *h) { RTCState *s = domain_vrtc(d); int rc; + + if ( !has_vrtc(d) ) + return 0; + spin_lock(&s->lock); rc = hvm_save_entry(RTC, 0, h, &s->hw); spin_unlock(&s->lock); @@ -750,6 +757,9 @@ static int rtc_load(struct domain *d, hvm_domain_context_t *h) { RTCState *s = domain_vrtc(d); + if ( !has_vrtc(d) ) + return 0; + spin_lock(&s->lock); /* Restore the registers */ @@ -790,6 +800,9 @@ void rtc_init(struct domain *d) { RTCState *s = domain_vrtc(d); + if ( !has_vrtc(d) ) + return; + spin_lock_init(&s->lock); init_timer(&s->update_timer, rtc_update_timer, s, smp_processor_id()); @@ -820,6 +833,9 @@ void rtc_deinit(struct domain *d) { RTCState *s = domain_vrtc(d); + if ( !has_vrtc(d) ) + return; + spin_barrier(&s->lock); TRACE_0D(TRC_HVM_EMUL_RTC_STOP_TIMER); -- 1.9.5 (Apple Git-50.3) _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |