| Submitter | Paolo Bonzini |
|---|---|
| Date | Jan. 10, 2013, 2:41 p.m. |
| Message ID | <1357828898-2545-1-git-send-email-pbonzini@redhat.com> |
| Download | mbox | patch |
| Permalink | /patch/211025/ |
| State | New |
| Headers | show |
Comments
Patch
diff --git a/hw/pci/pci.c b/hw/pci/pci.c index 94840c4..d6c63ff 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -213,14 +213,14 @@ void pci_bus_reset(PCIBus *bus) { int i; - for (i = 0; i < bus->nirq; i++) { - bus->irq_count[i] = 0; - } for (i = 0; i < ARRAY_SIZE(bus->devices); ++i) { if (bus->devices[i]) { pci_device_reset(bus->devices[i]); } } + for (i = 0; i < bus->nirq; i++) { + assert(bus->irq_count[i] == 0); + } } static int pcibus_reset(BusState *qbus)
A PCI bus reset will deassert the INTX pins, and this will make the irq_count array all-zeroes. Check that this is the case, and remove the existing loop which might even unsync irq_count and irq_state. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- hw/pci/pci.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)