[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] ahci: Unbreak bar registration (was: Re: [PATCH 05/
From: |
Jan Kiszka |
Subject: |
[Qemu-devel] [PATCH] ahci: Unbreak bar registration (was: Re: [PATCH 05/10] ich/ahci: convert to pci_register_bar_simple()) |
Date: |
Sun, 08 May 2011 19:54:52 +0200 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666 |
On 2011-04-04 17:28, Avi Kivity wrote:
> Signed-off-by: Avi Kivity <address@hidden>
> ---
> 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 <address@hidden>
Fix regression of 667bb59: ahci_init initializes ahci.mem, so we have to
move bar registration after it.
Signed-off-by: Jan Kiszka <address@hidden>
---
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;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-devel] [PATCH] ahci: Unbreak bar registration (was: Re: [PATCH 05/10] ich/ahci: convert to pci_register_bar_simple()),
Jan Kiszka <=