From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:41358) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QJ8C2-0003VL-HW for qemu-devel@nongnu.org; Sun, 08 May 2011 13:54:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QJ8C1-0000FA-Au for qemu-devel@nongnu.org; Sun, 08 May 2011 13:54:58 -0400 Received: from fmmailgate03.web.de ([217.72.192.234]:55177) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QJ8C0-0000En-Se for qemu-devel@nongnu.org; Sun, 08 May 2011 13:54:57 -0400 Message-ID: <4DC6D8EC.9000605@web.de> Date: Sun, 08 May 2011 19:54:52 +0200 From: Jan Kiszka MIME-Version: 1.0 References: <1301930887-20705-1-git-send-email-avi@redhat.com> <1301930887-20705-6-git-send-email-avi@redhat.com> In-Reply-To: <1301930887-20705-6-git-send-email-avi@redhat.com> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Sender: jan.kiszka@web.de Subject: [Qemu-devel] [PATCH] ahci: Unbreak bar registration (was: Re: [PATCH 05/10] ich/ahci: convert to pci_register_bar_simple()) List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Avi Kivity Cc: qemu-devel@nongnu.org, "Michael S. Tsirkin" On 2011-04-04 17:28, Avi Kivity wrote: > Signed-off-by: Avi Kivity > --- > hw/ide/ahci.c | 9 --------- > hw/ide/ahci.h | 3 --- > hw/ide/ich.c | 3 +-- > 3 files changed, 1 insertions(+), 14 deletions(-) > > diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c > index 98bdf70..c6e0c77 100644 > --- a/hw/ide/ahci.c > +++ b/hw/ide/ahci.c > @@ -1129,15 +1129,6 @@ void ahci_uninit(AHCIState *s) > qemu_free(s->dev); > } > > -void ahci_pci_map(PCIDevice *pci_dev, int region_num, > - pcibus_t addr, pcibus_t size, int type) > -{ > - struct AHCIPCIState *d = (struct AHCIPCIState *)pci_dev; > - AHCIState *s = &d->ahci; > - > - cpu_register_physical_memory(addr, size, s->mem); > -} > - > void ahci_reset(void *opaque) > { > struct AHCIPCIState *d = opaque; > diff --git a/hw/ide/ahci.h b/hw/ide/ahci.h > index a4560c4..dc86951 100644 > --- a/hw/ide/ahci.h > +++ b/hw/ide/ahci.h > @@ -325,9 +325,6 @@ typedef struct NCQFrame { > void ahci_init(AHCIState *s, DeviceState *qdev, int ports); > void ahci_uninit(AHCIState *s); > > -void ahci_pci_map(PCIDevice *pci_dev, int region_num, > - pcibus_t addr, pcibus_t size, int type); > - > void ahci_reset(void *opaque); > > #endif /* HW_IDE_AHCI_H */ > diff --git a/hw/ide/ich.c b/hw/ide/ich.c > index f242d7a..eb00f03 100644 > --- a/hw/ide/ich.c > +++ b/hw/ide/ich.c > @@ -95,8 +95,7 @@ static int pci_ich9_ahci_init(PCIDevice *dev) > qemu_register_reset(ahci_reset, d); > > /* XXX BAR size should be 1k, but that breaks, so bump it to 4k for now */ > - pci_register_bar(&d->card, 5, 0x1000, PCI_BASE_ADDRESS_SPACE_MEMORY, > - ahci_pci_map); > + pci_register_bar_simple(&d->card, 5, 0x1000, 0, d->ahci.mem); > > msi_init(dev, 0x50, 1, true, false); > This breaks AHCI as ahci.mem is not initialized at this point. Fix below. Did you check the rest of your series regarding such issues? Jan -----------8<---------- From: Jan Kiszka Fix regression of 667bb59: ahci_init initializes ahci.mem, so we have to move bar registration after it. Signed-off-by: Jan Kiszka --- hw/ide/ich.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/ide/ich.c b/hw/ide/ich.c index e44339b..6150ce3 100644 --- a/hw/ide/ich.c +++ b/hw/ide/ich.c @@ -93,14 +93,14 @@ static int pci_ich9_ahci_init(PCIDevice *dev) qemu_register_reset(ahci_reset, d); - /* XXX BAR size should be 1k, but that breaks, so bump it to 4k for now */ - pci_register_bar_simple(&d->card, 5, 0x1000, 0, d->ahci.mem); - msi_init(dev, 0x50, 1, true, false); ahci_init(&d->ahci, &dev->qdev, 6); d->ahci.irq = d->card.irq[0]; + /* XXX BAR size should be 1k, but that breaks, so bump it to 4k for now */ + pci_register_bar_simple(&d->card, 5, 0x1000, 0, d->ahci.mem); + return 0; }