diff options
| author | Thomas Huth <thuth@redhat.com> | 2021-04-16 14:52:56 +0200 |
|---|---|---|
| committer | Thomas Huth <thuth@redhat.com> | 2021-07-19 10:08:45 +0200 |
| commit | 9405d87be25db6dff4d7b5ab48a81bbf6d083e47 (patch) | |
| tree | c94429d30a760cfa44e04aad3c263e4a6f79bbbc /include/hw/isa | |
| parent | 283f0a05e24a5e5fab78305f783f06215390d620 (diff) | |
| download | focaccia-qemu-9405d87be25db6dff4d7b5ab48a81bbf6d083e47.tar.gz focaccia-qemu-9405d87be25db6dff4d7b5ab48a81bbf6d083e47.zip | |
hw/ide: Fix crash when plugging a piix3-ide device into the x-remote machine
QEMU currently crashes when the user tries to do something like: qemu-system-x86_64 -M x-remote -device piix3-ide This happens because the "isabus" variable is not initialized with the x-remote machine yet. Add a proper check for this condition and propagate the error to the caller, so we can fail there gracefully. Message-Id: <20210416125256.2039734-1-thuth@redhat.com> Reviewed-by: John Snow <jsnow@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
Diffstat (limited to 'include/hw/isa')
| -rw-r--r-- | include/hw/isa/isa.h | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/include/hw/isa/isa.h b/include/hw/isa/isa.h index ddaae89a85..d4417b34b6 100644 --- a/include/hw/isa/isa.h +++ b/include/hw/isa/isa.h @@ -132,12 +132,15 @@ void isa_register_ioport(ISADevice *dev, MemoryRegion *io, uint16_t start); * @portio: the ports, sorted by offset. * @opaque: passed into the portio callbacks. * @name: passed into memory_region_init_io. + * + * Returns: 0 on success, negative error code otherwise (e.g. if the + * ISA bus is not available) */ -void isa_register_portio_list(ISADevice *dev, - PortioList *piolist, - uint16_t start, - const MemoryRegionPortio *portio, - void *opaque, const char *name); +int isa_register_portio_list(ISADevice *dev, + PortioList *piolist, + uint16_t start, + const MemoryRegionPortio *portio, + void *opaque, const char *name); static inline ISABus *isa_bus_from_device(ISADevice *d) { |