[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 10/12] piix: do not raise irq while loading vmstate
From: |
Pavel Dovgalyuk |
Subject: |
[Qemu-devel] [PATCH 10/12] piix: do not raise irq while loading vmstate |
Date: |
Tue, 26 Aug 2014 11:15:25 +0400 |
User-agent: |
StGit/0.16 |
This patch disables raising an irq while loading the state of PCI bridge.
Signed-off-by: Pavel Dovgalyuk <address@hidden>
---
hw/pci-host/piix.c | 22 ++++++++++++++++++++--
1 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/hw/pci-host/piix.c b/hw/pci-host/piix.c
index e0e0946..86d6d20 100644
--- a/hw/pci-host/piix.c
+++ b/hw/pci-host/piix.c
@@ -409,7 +409,7 @@ static void piix3_set_irq_pic(PIIX3State *piix3, int
pic_irq)
(pic_irq * PIIX_NUM_PIRQS))));
}
-static void piix3_set_irq_level(PIIX3State *piix3, int pirq, int level)
+static void piix3_set_irq_level_internal(PIIX3State *piix3, int pirq, int
level)
{
int pic_irq;
uint64_t mask;
@@ -422,6 +422,18 @@ static void piix3_set_irq_level(PIIX3State *piix3, int
pirq, int level)
mask = 1ULL << ((pic_irq * PIIX_NUM_PIRQS) + pirq);
piix3->pic_levels &= ~mask;
piix3->pic_levels |= mask * !!level;
+}
+
+static void piix3_set_irq_level(PIIX3State *piix3, int pirq, int level)
+{
+ int pic_irq;
+
+ pic_irq = piix3->dev.config[PIIX_PIRQC + pirq];
+ if (pic_irq >= PIIX_NUM_PIC_IRQS) {
+ return;
+ }
+
+ piix3_set_irq_level_internal(piix3, pirq, level);
piix3_set_irq_pic(piix3, pic_irq);
}
@@ -527,7 +539,13 @@ static void piix3_reset(void *opaque)
static int piix3_post_load(void *opaque, int version_id)
{
PIIX3State *piix3 = opaque;
- piix3_update_irq_levels(piix3);
+ int pirq;
+
+ piix3->pic_levels = 0;
+ for (pirq = 0; pirq < PIIX_NUM_PIRQS; pirq++) {
+ piix3_set_irq_level_internal(piix3, pirq,
+ pci_bus_get_irq_level(piix3->dev.bus, pirq));
+ }
return 0;
}
- [Qemu-devel] [PATCH 09/12] rtl8139: adding new fields to vmstate, (continued)
- [Qemu-devel] [PATCH 09/12] rtl8139: adding new fields to vmstate, Pavel Dovgalyuk, 2014/08/26
- Re: [Qemu-devel] [PATCH 09/12] rtl8139: adding new fields to vmstate, Paolo Bonzini, 2014/08/26
- Re: [Qemu-devel] [PATCH 09/12] rtl8139: adding new fields to vmstate, Pavel Dovgaluk, 2014/08/27
- Re: [Qemu-devel] [PATCH 09/12] rtl8139: adding new fields to vmstate, Paolo Bonzini, 2014/08/27
- Re: [Qemu-devel] [PATCH 09/12] rtl8139: adding new fields to vmstate, Pavel Dovgaluk, 2014/08/27
- Re: [Qemu-devel] [PATCH 09/12] rtl8139: adding new fields to vmstate, Paolo Bonzini, 2014/08/27
- Re: [Qemu-devel] [PATCH 09/12] rtl8139: adding new fields to vmstate, Pavel Dovgaluk, 2014/08/27
- Message not available
- Re: [Qemu-devel] [PATCH 09/12] rtl8139: adding new fields to vmstate, Paolo Bonzini, 2014/08/27
- Re: [Qemu-devel] [PATCH 09/12] rtl8139: adding new fields to vmstate, Pavel Dovgaluk, 2014/08/28
- Re: [Qemu-devel] [PATCH 09/12] rtl8139: adding new fields to vmstate, Paolo Bonzini, 2014/08/28
[Qemu-devel] [PATCH 10/12] piix: do not raise irq while loading vmstate,
Pavel Dovgalyuk <=
[Qemu-devel] [PATCH 11/12] mc146818rtc: add missed field to vmstate, Pavel Dovgalyuk, 2014/08/26
[Qemu-devel] [PATCH 12/12] pl031: add missed field to vmstate, Pavel Dovgalyuk, 2014/08/26