|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v8 12/21] xen/x86: allow disabling the emulated PIT
Signed-off-by: Roger Pau Monnà <roger.pau@xxxxxxxxxx>
Reported by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
Cc: Jan Beulich <jbeulich@xxxxxxxx>
Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
---
Changes since v7:
- Patch added.
---
xen/arch/x86/hvm/i8254.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/xen/arch/x86/hvm/i8254.c b/xen/arch/x86/hvm/i8254.c
index 8a93c88..b517cd6 100644
--- a/xen/arch/x86/hvm/i8254.c
+++ b/xen/arch/x86/hvm/i8254.c
@@ -382,6 +382,9 @@ static uint32_t pit_ioport_read(struct PITState *pit,
uint32_t addr)
void pit_stop_channel0_irq(PITState *pit)
{
+ if ( !has_vpit(current->domain) )
+ return;
+
TRACE_0D(TRC_HVM_EMUL_PIT_STOP_TIMER);
spin_lock(&pit->lock);
destroy_periodic_time(&pit->pt0);
@@ -393,6 +396,9 @@ static int pit_save(struct domain *d, hvm_domain_context_t
*h)
PITState *pit = domain_vpit(d);
int rc;
+ if ( !has_vpit(d) )
+ return 0;
+
spin_lock(&pit->lock);
rc = hvm_save_entry(PIT, 0, h, &pit->hw);
@@ -407,6 +413,9 @@ static int pit_load(struct domain *d, hvm_domain_context_t
*h)
PITState *pit = domain_vpit(d);
int i;
+ if ( !has_vpit(d) )
+ return -ENODEV;
+
spin_lock(&pit->lock);
if ( hvm_load_entry(PIT, h, &pit->hw) )
@@ -437,6 +446,9 @@ void pit_reset(struct domain *d)
struct hvm_hw_pit_channel *s;
int i;
+ if ( !has_vpit(d) )
+ return;
+
TRACE_0D(TRC_HVM_EMUL_PIT_STOP_TIMER);
destroy_periodic_time(&pit->pt0);
pit->pt0.source = PTSRC_isa;
@@ -458,6 +470,9 @@ void pit_init(struct domain *d, unsigned long cpu_khz)
{
PITState *pit = domain_vpit(d);
+ if ( !has_vpit(d) )
+ return;
+
spin_lock_init(&pit->lock);
if ( is_hvm_domain(d) )
@@ -473,6 +488,9 @@ void pit_deinit(struct domain *d)
{
PITState *pit = domain_vpit(d);
+ if ( !has_vpit(d) )
+ return;
+
TRACE_0D(TRC_HVM_EMUL_PIT_STOP_TIMER);
destroy_periodic_time(&pit->pt0);
}
--
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 |