Message ID | 20191018134754.16362-10-philmd@redhat.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | hw/i386/pc: Split PIIX3 southbridge from i440FX northbridge | expand |
Philippe Mathieu-Daudé <philmd@redhat.com> 于2019年10月18日周五 下午9:53写道: > In the next commit we'll refactor the PIIX4 code out of > mips_malta_init(). As a preliminary step, add the 'ide_drives' > variable and create the drive array dynamically. > > Reviewed-by: Aleksandar Markovic <amarkovic@wavecomp.com> > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> > Reviewed-by: Li Qiang <liq3ea@gmail.com> > --- > hw/mips/mips_malta.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c > index 528c34a1c3..774bb810f6 100644 > --- a/hw/mips/mips_malta.c > +++ b/hw/mips/mips_malta.c > @@ -1235,7 +1235,8 @@ void mips_malta_init(MachineState *machine) > int piix4_devfn; > I2CBus *smbus; > DriveInfo *dinfo; > - DriveInfo *hd[MAX_IDE_BUS * MAX_IDE_DEVS]; > + const size_t ide_drives = MAX_IDE_BUS * MAX_IDE_DEVS; > + DriveInfo **hd; > int fl_idx = 0; > int be; > > @@ -1406,7 +1407,8 @@ void mips_malta_init(MachineState *machine) > pci_bus = gt64120_register(s->i8259); > > /* Southbridge */ > - ide_drive_get(hd, ARRAY_SIZE(hd)); > + hd = g_new(DriveInfo *, ide_drives); > + ide_drive_get(hd, ide_drives); > > pci = pci_create_simple_multifunction(pci_bus, PCI_DEVFN(10, 0), > true, TYPE_PIIX4_PCI_DEVICE); > @@ -1421,6 +1423,7 @@ void mips_malta_init(MachineState *machine) > } > > pci_piix4_ide_init(pci_bus, hd, piix4_devfn + 1); > + g_free(hd); > pci_create_simple(pci_bus, piix4_devfn + 2, "piix4-usb-uhci"); > smbus = piix4_pm_init(pci_bus, piix4_devfn + 3, 0x1100, > isa_get_irq(NULL, 9), NULL, 0, NULL); > -- > 2.21.0 > > >
diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c index 528c34a1c3..774bb810f6 100644 --- a/hw/mips/mips_malta.c +++ b/hw/mips/mips_malta.c @@ -1235,7 +1235,8 @@ void mips_malta_init(MachineState *machine) int piix4_devfn; I2CBus *smbus; DriveInfo *dinfo; - DriveInfo *hd[MAX_IDE_BUS * MAX_IDE_DEVS]; + const size_t ide_drives = MAX_IDE_BUS * MAX_IDE_DEVS; + DriveInfo **hd; int fl_idx = 0; int be; @@ -1406,7 +1407,8 @@ void mips_malta_init(MachineState *machine) pci_bus = gt64120_register(s->i8259); /* Southbridge */ - ide_drive_get(hd, ARRAY_SIZE(hd)); + hd = g_new(DriveInfo *, ide_drives); + ide_drive_get(hd, ide_drives); pci = pci_create_simple_multifunction(pci_bus, PCI_DEVFN(10, 0), true, TYPE_PIIX4_PCI_DEVICE); @@ -1421,6 +1423,7 @@ void mips_malta_init(MachineState *machine) } pci_piix4_ide_init(pci_bus, hd, piix4_devfn + 1); + g_free(hd); pci_create_simple(pci_bus, piix4_devfn + 2, "piix4-usb-uhci"); smbus = piix4_pm_init(pci_bus, piix4_devfn + 3, 0x1100, isa_get_irq(NULL, 9), NULL, 0, NULL);