It is pointless to overlap a memory subregion with priority 0. Use the simpler memory_region_add_subregion() function. This patch was produced with the following spatch script: @@ expression region; expression offset; expression subregion; @@ -memory_region_add_subregion_overlap(region, offset, subregion, 0) +memory_region_add_subregion(region, offset, subregion) Signed-off-by: Philippe Mathieu-Daudé <philmd@xxxxxxxxxx> --- hw/arm/nrf51_soc.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/hw/arm/nrf51_soc.c b/hw/arm/nrf51_soc.c index 74029169d0..ade06b225f 100644 --- a/hw/arm/nrf51_soc.c +++ b/hw/arm/nrf51_soc.c @@ -94,7 +94,7 @@ static void nrf51_soc_realize(DeviceState *dev_soc, Error **errp) return; } mr = sysbus_mmio_get_region(SYS_BUS_DEVICE(&s->uart), 0); - memory_region_add_subregion_overlap(&s->container, NRF51_UART_BASE, mr, 0); + memory_region_add_subregion(&s->container, NRF51_UART_BASE, mr); sysbus_connect_irq(SYS_BUS_DEVICE(&s->uart), 0, qdev_get_gpio_in(DEVICE(&s->cpu), BASE_TO_IRQ(NRF51_UART_BASE))); @@ -107,7 +107,7 @@ static void nrf51_soc_realize(DeviceState *dev_soc, Error **errp) } mr = sysbus_mmio_get_region(SYS_BUS_DEVICE(&s->rng), 0); - memory_region_add_subregion_overlap(&s->container, NRF51_RNG_BASE, mr, 0); + memory_region_add_subregion(&s->container, NRF51_RNG_BASE, mr); sysbus_connect_irq(SYS_BUS_DEVICE(&s->rng), 0, qdev_get_gpio_in(DEVICE(&s->cpu), BASE_TO_IRQ(NRF51_RNG_BASE))); @@ -127,13 +127,13 @@ static void nrf51_soc_realize(DeviceState *dev_soc, Error **errp) } mr = sysbus_mmio_get_region(SYS_BUS_DEVICE(&s->nvm), 0); - memory_region_add_subregion_overlap(&s->container, NRF51_NVMC_BASE, mr, 0); + memory_region_add_subregion(&s->container, NRF51_NVMC_BASE, mr); mr = sysbus_mmio_get_region(SYS_BUS_DEVICE(&s->nvm), 1); - memory_region_add_subregion_overlap(&s->container, NRF51_FICR_BASE, mr, 0); + memory_region_add_subregion(&s->container, NRF51_FICR_BASE, mr); mr = sysbus_mmio_get_region(SYS_BUS_DEVICE(&s->nvm), 2); - memory_region_add_subregion_overlap(&s->container, NRF51_UICR_BASE, mr, 0); + memory_region_add_subregion(&s->container, NRF51_UICR_BASE, mr); mr = sysbus_mmio_get_region(SYS_BUS_DEVICE(&s->nvm), 3); - memory_region_add_subregion_overlap(&s->container, NRF51_FLASH_BASE, mr, 0); + memory_region_add_subregion(&s->container, NRF51_FLASH_BASE, mr); /* GPIO */ object_property_set_bool(OBJECT(&s->gpio), true, "realized", &err); @@ -143,7 +143,7 @@ static void nrf51_soc_realize(DeviceState *dev_soc, Error **errp) } mr = sysbus_mmio_get_region(SYS_BUS_DEVICE(&s->gpio), 0); - memory_region_add_subregion_overlap(&s->container, NRF51_GPIO_BASE, mr, 0); + memory_region_add_subregion(&s->container, NRF51_GPIO_BASE, mr); /* Pass all GPIOs to the SOC layer so they are available to the board */ qdev_pass_gpios(DEVICE(&s->gpio), dev_soc, NULL); -- 2.21.0