[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 7/9] hw/ide/ahci: Do not pass 'ports' argument to ahci_realize()
From: |
Philippe Mathieu-Daudé |
Subject: |
[PATCH 7/9] hw/ide/ahci: Do not pass 'ports' argument to ahci_realize() |
Date: |
Tue, 13 Feb 2024 09:11:58 +0100 |
Explicitly set AHCIState::ports before calling ahci_realize().
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
hw/ide/ahci_internal.h | 2 +-
hw/ide/ahci.c | 9 +++++----
hw/ide/ich.c | 3 ++-
3 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/hw/ide/ahci_internal.h b/hw/ide/ahci_internal.h
index 4dc2805d21..4e13329bb2 100644
--- a/hw/ide/ahci_internal.h
+++ b/hw/ide/ahci_internal.h
@@ -377,7 +377,7 @@ typedef struct SDBFIS {
uint32_t payload;
} QEMU_PACKED SDBFIS;
-void ahci_realize(AHCIState *s, DeviceState *qdev, AddressSpace *as, int
ports);
+void ahci_realize(AHCIState *s, DeviceState *qdev, AddressSpace *as);
void ahci_init(AHCIState *s, DeviceState *qdev);
void ahci_uninit(AHCIState *s);
diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c
index 2c3306dae4..33f7e83687 100644
--- a/hw/ide/ahci.c
+++ b/hw/ide/ahci.c
@@ -1614,14 +1614,14 @@ void ahci_init(AHCIState *s, DeviceState *qdev)
"ahci-idp", 32);
}
-void ahci_realize(AHCIState *s, DeviceState *qdev, AddressSpace *as, int ports)
+void ahci_realize(AHCIState *s, DeviceState *qdev, AddressSpace *as)
{
qemu_irq *irqs;
int i;
s->as = as;
- s->ports = ports;
- s->dev = g_new0(AHCIDevice, ports);
+ assert(s->ports > 0);
+ s->dev = g_new0(AHCIDevice, s->ports);
ahci_reg_init(s);
irqs = qemu_allocate_irqs(ahci_irq_set, s, s->ports);
for (i = 0; i < s->ports; i++) {
@@ -1862,7 +1862,8 @@ static void sysbus_ahci_realize(DeviceState *dev, Error
**errp)
{
SysbusAHCIState *s = SYSBUS_AHCI(dev);
- ahci_realize(&s->ahci, dev, &address_space_memory, s->num_ports);
+ s->ahci.ports = s->num_ports;
+ ahci_realize(&s->ahci, dev, &address_space_memory);
}
static Property sysbus_ahci_properties[] = {
diff --git a/hw/ide/ich.c b/hw/ide/ich.c
index d190012a95..122fc7e0ab 100644
--- a/hw/ide/ich.c
+++ b/hw/ide/ich.c
@@ -113,7 +113,8 @@ static void pci_ich9_ahci_realize(PCIDevice *dev, Error
**errp)
d = ICH9_AHCI(dev);
int ret;
- ahci_realize(&d->ahci, DEVICE(dev), pci_get_address_space(dev), 6);
+ d->ahci.ports = 6;
+ ahci_realize(&d->ahci, DEVICE(dev), pci_get_address_space(dev));
pci_config_set_prog_interface(dev->config, AHCI_PROGMODE_MAJOR_REV_1);
--
2.41.0
- [PATCH 0/9] hw/ide/ahci: Housekeeping, Philippe Mathieu-Daudé, 2024/02/13
- [PATCH 1/9] hw/i386/q35: Use DEVICE() cast macro with PCIDevice object, Philippe Mathieu-Daudé, 2024/02/13
- [PATCH 2/9] hw/ide/ahci: Expose AHCIPCIState structure, Philippe Mathieu-Daudé, 2024/02/13
- [PATCH 3/9] hw/ide/ahci: Rename AHCI PCI function as 'pdev', Philippe Mathieu-Daudé, 2024/02/13
- [PATCH 4/9] hw/ide/ahci: Inline ahci_get_num_ports(), Philippe Mathieu-Daudé, 2024/02/13
- [PATCH 5/9] hw/ide/ahci: Pass AHCI context to ahci_ide_create_devs(), Philippe Mathieu-Daudé, 2024/02/13
- [PATCH 6/9] hw/ide/ahci: Convert AHCIState::ports to unsigned, Philippe Mathieu-Daudé, 2024/02/13
- [PATCH 7/9] hw/ide/ahci: Do not pass 'ports' argument to ahci_realize(),
Philippe Mathieu-Daudé <=
- [PATCH 8/9] hw/ide/ahci: Remove SysbusAHCIState::num_ports field, Philippe Mathieu-Daudé, 2024/02/13
- [PATCH 9/9] hw/ide/ahci: Move SysBus definitions to 'ahci-sysbus.h', Philippe Mathieu-Daudé, 2024/02/13
- Re: [PATCH 0/9] hw/ide/ahci: Housekeeping, Michael S. Tsirkin, 2024/02/13
- Re: [PATCH 0/9] hw/ide/ahci: Housekeeping, Philippe Mathieu-Daudé, 2024/02/15