diff options
Diffstat (limited to 'kernels/xen/pvh_pit_init.patch')
-rw-r--r-- | kernels/xen/pvh_pit_init.patch | 107 |
1 files changed, 0 insertions, 107 deletions
diff --git a/kernels/xen/pvh_pit_init.patch b/kernels/xen/pvh_pit_init.patch deleted file mode 100644 index 4f14e5ddf..000000000 --- a/kernels/xen/pvh_pit_init.patch +++ /dev/null @@ -1,107 +0,0 @@ -From 3a148e0a7ee0ae56a498be5ba973314ec50cd999 Mon Sep 17 00:00:00 2001 -From: Mukesh Rathor <mukesh.rathor@oracle.com> -Date: Fri, 4 Apr 2014 10:36:29 +0200 -Subject: [PATCH] x86: call pit_init for pvh also - -During halt of a pvh guest, the guest may do speaker shutdown. This -results in call to handle_speaker_io in xen. It will hang on the vpit -spin lock because it has not been initialized. -Since, pit_init is also called for both pv and hvm, the call is -moved to a more generic place. - -Signed-off-by: Mukesh Rathor <mukesh.rathor@oracle.com> -Reviewed-by: Jan Beulich <jbeulich@suse.com> -master commit: c30c544b199f70eada597c7352cdcb44648f6dcd -master date: 2014-03-11 13:56:50 +0100 ---- - xen/arch/x86/domain.c | 9 +++++---- - xen/arch/x86/hvm/hvm.c | 2 -- - xen/arch/x86/hvm/i8254.c | 3 +-- - xen/include/asm-x86/hvm/vpt.h | 2 +- - 4 files changed, 7 insertions(+), 9 deletions(-) - -diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c -index 6618ae6..bc073e5 100644 ---- a/xen/arch/x86/domain.c -+++ b/xen/arch/x86/domain.c -@@ -422,10 +422,6 @@ int vcpu_initialise(struct vcpu *v) - - /* PV guests by default have a 100Hz ticker. */ - v->periodic_period = MILLISECS(10); -- -- /* PV guests get an emulated PIT too for video BIOSes to use. */ -- if ( v->vcpu_id == 0 ) -- pit_init(v, cpu_khz); - } - - v->arch.schedule_tail = continue_nonidle_domain; -@@ -579,6 +575,9 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags) - tsc_set_info(d, TSC_MODE_DEFAULT, 0UL, 0, 0); - spin_lock_init(&d->arch.vtsc_lock); - -+ /* PV/PVH guests get an emulated PIT too for video BIOSes to use. */ -+ pit_init(d, cpu_khz); -+ - return 0; - - fail: -@@ -1980,6 +1979,8 @@ int domain_relinquish_resources(struct domain *d) - BUG(); - } - -+ pit_deinit(d); -+ - if ( has_hvm_container_domain(d) ) - hvm_domain_relinquish_resources(d); - -diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c -index 6150899..a666471 100644 ---- a/xen/arch/x86/hvm/hvm.c -+++ b/xen/arch/x86/hvm/hvm.c -@@ -643,7 +643,6 @@ void hvm_domain_relinquish_resources(struct domain *d) - rtc_deinit(d); - if ( d->vcpu != NULL && d->vcpu[0] != NULL ) - { -- pit_deinit(d); - pmtimer_deinit(d); - hpet_deinit(d); - } -@@ -1217,7 +1216,6 @@ int hvm_vcpu_initialise(struct vcpu *v) - if ( v->vcpu_id == 0 ) - { - /* NB. All these really belong in hvm_domain_initialise(). */ -- pit_init(v, cpu_khz); - pmtimer_init(v); - hpet_init(v); - -diff --git a/xen/arch/x86/hvm/i8254.c b/xen/arch/x86/hvm/i8254.c -index c0d6bc2..f7493b8 100644 ---- a/xen/arch/x86/hvm/i8254.c -+++ b/xen/arch/x86/hvm/i8254.c -@@ -447,9 +447,8 @@ void pit_reset(struct domain *d) - spin_unlock(&pit->lock); - } - --void pit_init(struct vcpu *v, unsigned long cpu_khz) -+void pit_init(struct domain *d, unsigned long cpu_khz) - { -- struct domain *d = v->domain; - PITState *pit = domain_vpit(d); - - spin_lock_init(&pit->lock); -diff --git a/xen/include/asm-x86/hvm/vpt.h b/xen/include/asm-x86/hvm/vpt.h -index 87c3a66..9f3ec8d 100644 ---- a/xen/include/asm-x86/hvm/vpt.h -+++ b/xen/include/asm-x86/hvm/vpt.h -@@ -175,7 +175,7 @@ void destroy_periodic_time(struct periodic_time *pt); - int pv_pit_handler(int port, int data, int write); - void pit_reset(struct domain *d); - --void pit_init(struct vcpu *v, unsigned long cpu_khz); -+void pit_init(struct domain *d, unsigned long cpu_khz); - void pit_stop_channel0_irq(PITState * pit); - void pit_deinit(struct domain *d); - void rtc_init(struct domain *d); --- -1.7.2.5 - |