From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MDg3z-0002Mv-Qg for qemu-devel@nongnu.org; Mon, 08 Jun 2009 10:43:04 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MDg3t-0002L3-Ln for qemu-devel@nongnu.org; Mon, 08 Jun 2009 10:43:02 -0400 Received: from [199.232.76.173] (port=42982 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MDg3s-0002Kn-VZ for qemu-devel@nongnu.org; Mon, 08 Jun 2009 10:42:57 -0400 Received: from mx2.redhat.com ([66.187.237.31]:32958) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MDg3s-00087m-D0 for qemu-devel@nongnu.org; Mon, 08 Jun 2009 10:42:56 -0400 Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id n58EgsSW032482 for ; Mon, 8 Jun 2009 10:42:54 -0400 Message-ID: <4A2D2369.5090805@redhat.com> Date: Mon, 08 Jun 2009 17:42:49 +0300 From: Yaniv Kamay MIME-Version: 1.0 Subject: Re: [Qemu-devel] [PATCH 2/3] Add pci_bus_reset() function. References: <1244465766-6349-1-git-send-email-gleb@redhat.com> <1244465766-6349-2-git-send-email-gleb@redhat.com> <4A2D219F.1020408@redhat.com> <20090608143710.GM27210@redhat.com> In-Reply-To: <20090608143710.GM27210@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Gleb Natapov Cc: Avi Kivity , qemu-devel@nongnu.org Gleb Natapov wrote: > On Mon, Jun 08, 2009 at 05:35:11PM +0300, Avi Kivity wrote: > >> Gleb Natapov wrote: >> >>> To reset internal irq handling data structures. >>> >>> Signed-off-by: Gleb Natapov >>> Signed-off-by: Yaniv Kamay >>> --- >>> 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)); >>> + } >>> +} >>> + >>> >>> >> Shouldn't each device's reset function bring its line low, thus zeroing >> the irq_state naturally? >> >> 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. >