From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51101) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VQb6G-0005kB-7N for qemu-devel@nongnu.org; Mon, 30 Sep 2013 06:53:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VQb6B-00025v-7U for qemu-devel@nongnu.org; Mon, 30 Sep 2013 06:53:12 -0400 Received: from mx1.redhat.com ([209.132.183.28]:29784) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VQb6B-00024q-00 for qemu-devel@nongnu.org; Mon, 30 Sep 2013 06:53:07 -0400 Received: from int-mx12.intmail.prod.int.phx2.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.25]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id r8UAr5XL022317 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Mon, 30 Sep 2013 06:53:05 -0400 Received: from redhat.com (vpn1-5-48.ams2.redhat.com [10.36.5.48]) by int-mx12.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with SMTP id r8UAr3BQ018829 for ; Mon, 30 Sep 2013 06:53:04 -0400 Date: Mon, 30 Sep 2013 13:55:28 +0300 From: "Michael S. Tsirkin" Message-ID: <20130930105528.GF20445@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Subject: [Qemu-devel] mail to Paul Brook paul@codesourcery.com bouncing [postmaster@relay1.mentorg.com: Delivery Status Notification (Failure)] List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Anyone knows what's going on? If no mail should be sent to paul@codesourcery.com, let's add .mailcap so get_maintainer doesn't suggest this address. ----- Forwarded message from postmaster@relay1.mentorg.com ----- Date: Mon, 30 Sep 2013 03:08:22 -0700 From: postmaster@relay1.mentorg.com To: mst@redhat.com Subject: Delivery Status Notification (Failure) Message-ID: This is an automatically generated Delivery Status Notification. Delivery to the following recipients failed. Paul_Brook@mentor.com Reporting-MTA: dns;svr-orw-fem-01.mgc.mentorg.com Received-From-MTA: dns;relay1.mentorg.com Arrival-Date: Mon, 30 Sep 2013 03:08:21 -0700 Final-Recipient: rfc822;Paul_Brook@mentor.com Action: failed Status: 5.7.1 X-Display-Name: Brook, Paul Date: Mon, 30 Sep 2013 13:10:35 +0300 From: "Michael S. Tsirkin" To: Marcel Apfelbaum Cc: Paolo Bonzini , "qemu-devel@nongnu.org" , kraxel@redhat.com, paul@codesourcery.com, anthony@codemonkey.ws, afaerber@suse.de, sw@weilnetz.de, peter.crosthwaite@xilinx.com, stefanha@redhat.com, jasowang@redhat.com, dkoch@verizon.com, alex.williamson@redhat.com Subject: Re: [Qemu-devel] [PATCH 0/3] hw: set irq without selecting INTx pin Message-ID: <20130930101035.GB20445@redhat.com> In-Reply-To: <1380534200.3439.8.camel@localhost.localdomain> On Mon, Sep 30, 2013 at 12:43:20PM +0300, Marcel Apfelbaum wrote: > On Mon, 2013-09-30 at 12:14 +0300, Michael S. Tsirkin wrote: > > On Mon, Sep 30, 2013 at 11:02:06AM +0200, Paolo Bonzini wrote: > > > Il 30/09/2013 10:58, Michael S. Tsirkin ha scritto: > > > >>> > > As a next step, can we make pci_set_irq non-inline and make > > > >>> > > it call pci_irq_handler directly, and get rid of the irq field? > > > >> > What irq field? > > > > /* IRQ objects for the INTA-INTD pins. */ > > > > qemu_irq *irq; > > > > > > > > > > That's still used by devices that use common code for PCI and sysbus > > > versions (e.g. USB OHCI and EHCI). > > > > > > Paolo > > > > Well this work wouldn't be complete without > > addressing them anyway. > > > > These devices would have to create their own > > irq in pci-specific code, along the lines of: > > This irq field is used also in places where pci_set_irq(PCIDevice dev, level) > can't infer the INTx: > - PCIExpress: qemu_set_irq(dev->irq[dev->exp.hpev_intx],dev->exp.hpev_notified); Well the spec says, explicitly: 6.7.3.4. Software Notification of Hot-Plug Events ... Note that all other interrupt sources within the same Function will assert the same virtual INTx wire when requesting service. I read this to mean that this is a bug, and it should simply use pci_set_irq like all other devices. > - vmxnet3 device: qemu_set_irq(d->irq[int_idx], 1); > > What approach should be used here? > > Thanks, > Marcel > > - s->irq = dev->irq[3]; > > + s->irq = qemu_allocate_irqs(pci_set_irq, dev, 1); > > > > > > If there's more than one device like this, we should add > > > > /* Return an irq that calls pci_set_irq internally */ > > qemu_irq *pci_allocate_irq(PCIDevice *); > > > > ----- End forwarded message -----