On Wed, Feb 8, 2023 at 1:08 AM Philippe Mathieu-Daudé <phi...@linaro.org>
wrote:

> TYPE_PIIX3_IDE is a PCI function inheriting from QOM
> TYPE_PCI_DEVICE. To be able to call the ISA specific
> ide_init_ioport_isa(), we call this function passing
> a NULL ISADevice argument. Remove this hack by calling
> the recently added generic ide_init_ioport(), which
> doesn't expect any ISADevice.
>
> Inspired-by: Bernhard Beschow <shen...@gmail.com>
> Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org>
> ---
>  hw/ide/piix.c | 10 ++++------
>  1 file changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/hw/ide/piix.c b/hw/ide/piix.c
> index a587541bb2..1cd4389611 100644
> --- a/hw/ide/piix.c
> +++ b/hw/ide/piix.c
> @@ -136,15 +136,13 @@ static int pci_piix_init_ports(PCIIDEState *d)
>          {0x1f0, 0x3f6, 14},
>          {0x170, 0x376, 15},
>      };
> -    int i, ret;
> +    int i;
>
>      for (i = 0; i < 2; i++) {
>          ide_bus_init(&d->bus[i], sizeof(d->bus[i]), DEVICE(d), i, 2);
> -        ret = ide_init_ioport_isa(&d->bus[i], NULL,
> -                                  port_info[i].iobase,
> port_info[i].iobase2);
> -        if (ret) {
> -            return ret;
> -        }
> +        ide_init_ioport(&d->bus[i], OBJECT(d),
> +                        pci_address_space_io(PCI_DEVICE(d)),
> +                        port_info[i].iobase, port_info[i].iobase2);
>          ide_init2(&d->bus[i], isa_get_irq(NULL, port_info[i].isairq));
>
>          bmdma_init(&d->bus[i], &d->bmdma[i], d);
> --
> 2.38.1
>
> This patch essentially circumvents the mitigations introduced by
https://lore.kernel.org/qemu-devel/20210416125256.2039734-1-th...@redhat.com/
"hw/ide: Fix crash when plugging a piix3-ide device into the x-remote
machine": `qemu-system-x86_64 -M x-remote -device piix3-ide` now crashes.
This has been considered in
https://lore.kernel.org/qemu-devel/20230126211740.66874-1-shen...@gmail.com/
-- see cover letter there. TBH it's not entirely clear to me why we need
two competing series here at all.

Best regards,
Bernhard

Reply via email to