From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:56905) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SfAVq-0003DR-UD for qemu-devel@nongnu.org; Thu, 14 Jun 2012 09:55:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SfAVj-0002B0-Ti for qemu-devel@nongnu.org; Thu, 14 Jun 2012 09:55:02 -0400 Received: from mx1.redhat.com ([209.132.183.28]:55911) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SfAVj-0002Ac-Ls for qemu-devel@nongnu.org; Thu, 14 Jun 2012 09:54:55 -0400 Message-ID: <1339682092.24818.15.camel@ul30vt> From: Alex Williamson Date: Thu, 14 Jun 2012 07:54:52 -0600 In-Reply-To: <4FD97E43.1060905@siemens.com> References: <20120614044751.11034.87619.stgit@bling.home> <20120614045127.11034.9983.stgit@bling.home> <4FD97E43.1060905@siemens.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Mime-Version: 1.0 Subject: Re: [Qemu-devel] [PATCH v2 2/6] ivshmem: Convert to msix_init_exclusive_bar() interface List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Kiszka Cc: "qemu-devel@nongnu.org" , "mst@redhat.com" On Thu, 2012-06-14 at 08:01 +0200, Jan Kiszka wrote: > On 2012-06-14 06:51, Alex Williamson wrote: > > Trivial conversion, failed to have an uninit before and after. > > Need not be in this series, but we should fix that trivial bug nevertheless. Given the exit(1) on failure to setup msix, I'm guessing ivshmem isn't well tuned of hotplug, so I'm not sure how trivial it is. Thanks, Alex > > > > Signed-off-by: Alex Williamson > > --- > > > > hw/ivshmem.c | 10 +++------- > > 1 file changed, 3 insertions(+), 7 deletions(-) > > > > diff --git a/hw/ivshmem.c b/hw/ivshmem.c > > index 05559b6..8b49eee 100644 > > --- a/hw/ivshmem.c > > +++ b/hw/ivshmem.c > > @@ -70,7 +70,6 @@ typedef struct IVShmemState { > > */ > > MemoryRegion bar; > > MemoryRegion ivshmem; > > - MemoryRegion msix_bar; > > uint64_t ivshmem_size; /* size of shared memory region */ > > int shm_fd; /* shared memory file descriptor */ > > > > @@ -563,16 +562,13 @@ static uint64_t ivshmem_get_size(IVShmemState * s) { > > > > static void ivshmem_setup_msi(IVShmemState * s) > > { > > - memory_region_init(&s->msix_bar, "ivshmem-msix", 4096); > > - if (!msix_init(&s->dev, s->vectors, &s->msix_bar, 1, 0)) { > > - pci_register_bar(&s->dev, 1, PCI_BASE_ADDRESS_SPACE_MEMORY, > > - &s->msix_bar); > > - IVSHMEM_DPRINTF("msix initialized (%d vectors)\n", s->vectors); > > - } else { > > + if (msix_init_exclusive_bar(&s->dev, s->vectors, 1)) { > > IVSHMEM_DPRINTF("msix initialization failed\n"); > > exit(1); > > } > > > > + IVSHMEM_DPRINTF("msix initialized (%d vectors)\n", s->vectors); > > + > > /* allocate QEMU char devices for receiving interrupts */ > > s->eventfd_table = g_malloc0(s->vectors * sizeof(EventfdEntry)); > > > > >