@@ -113,7 +113,7 @@ IsaDma *isa_bus_get_dma(ISABus *bus, int nchan)
static inline void isa_init_ioport(ISADevice *dev, uint16_t ioport)
{
- if (dev && (dev->ioport_id == 0 || ioport < dev->ioport_id)) {
+ if (dev->ioport_id == 0 || ioport < dev->ioport_id) {
dev->ioport_id = ioport;
}
}
@@ -129,6 +129,7 @@ int isa_register_portio_list(ISADevice *dev,
const MemoryRegionPortio *pio_start,
void *opaque, const char *name)
{
+ assert(dev);
assert(piolist && !piolist->owner);
if (!isabus) {
@@ -141,7 +142,7 @@ int isa_register_portio_list(ISADevice *dev,
isa_init_ioport(dev, start);
portio_list_init(piolist, OBJECT(dev), pio_start, opaque, name);
- portio_list_add(piolist, isabus->address_space_io, start);
+ portio_list_add(piolist, isa_address_space_io(dev), start);
return 0;
}
Previous commit removed the single call to isa_register_portio_list() with dev=NULL. To be sure we won't reintroduce such weird (ab)use, assert dev is non-NULL. We can now calls isa_address_space_io() to get the device I/O region. Note we can then remove the NULL check in isa_init_ioport() because it is only called in 2 places (and is static to this file): - isa_register_ioport() which first calls isa_address_space_io(), itself asserting dev is not NULL. - isa_register_portio_list() which also asserts dev is not NULL since the previous commit. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> --- hw/isa/isa-bus.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)