|
From: | Yaniv Kamay |
Subject: | Re: [Qemu-devel] [PATCH 2/3] Add pci_bus_reset() function. |
Date: | Mon, 08 Jun 2009 17:42:49 +0300 |
User-agent: | Thunderbird 2.0.0.21 (X11/20090320) |
Gleb Natapov wrote:
On Mon, Jun 08, 2009 at 05:35:11PM +0300, Avi Kivity wrote:Gleb Natapov wrote:Shouldn't each device's reset function bring its line low, thus zeroing the irq_state naturally?To reset internal irq handling data structures. Signed-off-by: Gleb Natapov <address@hidden> Signed-off-by: Yaniv Kamay <address@hidden> --- hw/pci.c | 16 ++++++++++++++++ 1 files changed, 16 insertions(+), 0 deletions(-) diff --git a/hw/pci.c b/hw/pci.c index 02b335f..89fefdf 100644 --- a/hw/pci.c +++ b/hw/pci.c @@ -88,6 +88,21 @@ static int pcibus_load(QEMUFile *f, void *opaque, int version_id) return 0; } +static void pci_bus_reset(void *opaque) +{ + PCIBus *bus = (PCIBus *)opaque; + int i; + + for (i = 0; i < bus->nirq; i++) { + bus->irq_count[i] = 0; + } + for (i = 0; i < PCI_DEVICES_MAX; i++) { + if (bus->devices[i]) + memset(bus->devices[i]->irq_state, 0, + sizeof(bus->devices[i]->irq_state)); + } +} +If not, we have a bug somewhere. Note we have exactly the same issue with save/restore.They should, but I haven't found one that does.
This is matter of definitions and not right or wrong, Since PCI in current imp save and load its state then it only logical that PCI will also reset it state.
Yaniv
-- Gleb.
[Prev in Thread] | Current Thread | [Next in Thread] |