From: Bernhard Beschow <shentey@gmail.com>
To: qemu-devel@nongnu.org
Cc: "Hervé Poussineau" <hpoussin@reactos.org>,
"Richard Henderson" <richard.henderson@linaro.org>,
mark.cave-ayland@ilande.co.uk, balaton@eik.bme.hu,
"Michael S. Tsirkin" <mst@redhat.com>,
qemu-block@nongnu.org, "Philippe Mathieu-Daudé" <f4bug@amsat.org>,
"Aurelien Jarno" <aurelien@aurel32.net>,
"Eduardo Habkost" <eduardo@habkost.net>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"John Snow" <jsnow@redhat.com>,
"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
"Bernhard Beschow" <shentey@gmail.com>
Subject: [RFC PATCH 00/10] Resolve isabus global
Date: Mon, 27 Jun 2022 09:16:01 +0200 [thread overview]
Message-ID: <20220627071611.8793-1-shentey@gmail.com> (raw)
This series resolves the global "isabus" variable and is basically a v2 of [1].
Note that the majority of the work consists of fixing ISA API calls in PIIX IDE
which implicitly rely on the usage of the isabus global.
Rather than adding an ISABus pointer in PCIIDEState as in "v1" this series uses
a qemu_irq array which is roughly the approach outlined in [2]. Moreover, this
series considers backwards compatibility for user-created PIIX IDE
"Frankensten" devices by using a temporary hack. This hack can be removed again
once a deprecation period of user-createable PIIX IDE devices is over. This
deprecation wasn't announced yet but now might be a good time.
Testing done:
* `./qemu-system-x86_64 -M x-remote -device piix3-ide` still fails gracefully with
`qemu-system-x86_64: -device piix3-ide: Failed to realize piix3-ide: No such device`
* `make check-avocado` doesn't report errors
* Booting a live image with `./qemu-system-x86_64 -M pc` works
* Booting a MIPS Malta machine [3] works
[1] https://patchew.org/QEMU/20210518215545.1793947-1-philmd@redhat.com/
[2] https://lists.nongnu.org/archive/html/qemu-devel/2020-03/msg01707.html
[3] https://people.debian.org/~aurel32/qemu/mips/
Bernhard Beschow (10):
hw/ide/piix: Check for presence of ISABus before using it
Revert "hw/ide: Fix crash when plugging a piix3-ide device into the
x-remote machine"
hw/i386/pc_piix: Allow for setting properties on "piix3-ide" before
realizing it
hw/ide/piix: Avoid the isabus global when wiring ISA interrupts for
internal devices
hw/isa/isa-bus: assert() if isa_get_irq() gets passed a NULL ISADevice
hw/ide/ioport: Rename ide_init_ioport() to isa_ide_init_ioport()
hw/pci/pci: Introduce pci_register_portio_list()
hw/ide/piix: Use pci_ide_init_ioport() rather than
isa_ide_init_ioport()
hw/isa: Resolve unneeded usage of isabus global
hw/isa/isa-bus: Resolve isabus global
hw/i386/pc_piix.c | 6 +++-
hw/ide/ioport.c | 30 +++++++++++++-------
hw/ide/isa.c | 2 +-
hw/ide/piix.c | 59 +++++++++++++++++++++++++++++++--------
hw/isa/isa-bus.c | 46 ++++++++++++++----------------
hw/isa/piix4.c | 3 ++
hw/pci/pci.c | 18 ++++++++++++
include/hw/ide/internal.h | 3 +-
include/hw/ide/pci.h | 2 ++
include/hw/isa/isa.h | 15 ++++------
include/hw/pci/pci.h | 21 ++++++++++++++
11 files changed, 147 insertions(+), 58 deletions(-)
--
2.36.1
next reply other threads:[~2022-06-27 7:22 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-27 7:16 Bernhard Beschow [this message]
2022-06-27 7:16 ` [RFC PATCH 01/10] hw/ide/piix: Check for presence of ISABus before using it Bernhard Beschow
2022-06-27 7:16 ` [RFC PATCH 02/10] Revert "hw/ide: Fix crash when plugging a piix3-ide device into the x-remote machine" Bernhard Beschow
2022-06-27 7:16 ` [RFC PATCH 03/10] hw/i386/pc_piix: Allow for setting properties on "piix3-ide" before realizing it Bernhard Beschow
2022-06-27 7:16 ` [RFC PATCH 04/10] hw/ide/piix: Avoid the isabus global when wiring ISA interrupts for internal devices Bernhard Beschow
2022-06-27 7:16 ` [RFC PATCH 05/10] hw/isa/isa-bus: assert() if isa_get_irq() gets passed a NULL ISADevice Bernhard Beschow
2022-06-27 7:16 ` [RFC PATCH 06/10] hw/ide/ioport: Rename ide_init_ioport() to isa_ide_init_ioport() Bernhard Beschow
2022-06-27 7:16 ` [RFC PATCH 07/10] hw/pci/pci: Introduce pci_register_portio_list() Bernhard Beschow
2022-06-27 7:16 ` [RFC PATCH 08/10] hw/ide/piix: Use pci_ide_init_ioport() rather than isa_ide_init_ioport() Bernhard Beschow
2022-06-27 7:16 ` [RFC PATCH 09/10] hw/isa: Resolve unneeded usage of isabus global Bernhard Beschow
2022-06-27 7:16 ` [RFC PATCH 10/10] hw/isa/isa-bus: Resolve " Bernhard Beschow
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220627071611.8793-1-shentey@gmail.com \
--to=shentey@gmail.com \
--cc=aurelien@aurel32.net \
--cc=balaton@eik.bme.hu \
--cc=eduardo@habkost.net \
--cc=f4bug@amsat.org \
--cc=hpoussin@reactos.org \
--cc=jsnow@redhat.com \
--cc=marcel.apfelbaum@gmail.com \
--cc=mark.cave-ayland@ilande.co.uk \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).