On Sun, Apr 12, 2020 at 3:41 PM Philippe Mathieu-Daudé <f4...@amsat.org> wrote: > > Coccinelle reported: > > $ spatch ... --timeout 60 --sp-file \ > scripts/coccinelle/simplify-init-realize-error_propagate.cocci > HANDLING: ./hw/arm/stm32f205_soc.c > >>> possible moves from stm32f205_soc_initfn() to stm32f205_soc_realize() > in ./hw/arm/stm32f205_soc.c:83 > > While reviewing we notice storing the MemoryRegion in the device > state, we'll be able to later automatically simplify the error > propagation calls. > > Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org>
Reviewed-by: Alistair Francis <alistair.fran...@wdc.com> Alistair > --- > include/hw/arm/stm32f205_soc.h | 4 ++++ > hw/arm/stm32f205_soc.c | 18 +++++++----------- > 2 files changed, 11 insertions(+), 11 deletions(-) > > diff --git a/include/hw/arm/stm32f205_soc.h b/include/hw/arm/stm32f205_soc.h > index 922a733f88..63e7e7c825 100644 > --- a/include/hw/arm/stm32f205_soc.h > +++ b/include/hw/arm/stm32f205_soc.h > @@ -56,6 +56,10 @@ typedef struct STM32F205State { > > ARMv7MState armv7m; > > + MemoryRegion sram; > + MemoryRegion flash; > + MemoryRegion flash_alias; > + > STM32F2XXSyscfgState syscfg; > STM32F2XXUsartState usart[STM_NUM_USARTS]; > STM32F2XXTimerState timer[STM_NUM_TIMERS]; > diff --git a/hw/arm/stm32f205_soc.c b/hw/arm/stm32f205_soc.c > index 118c342559..42f4e44134 100644 > --- a/hw/arm/stm32f205_soc.c > +++ b/hw/arm/stm32f205_soc.c > @@ -87,23 +87,19 @@ static void stm32f205_soc_realize(DeviceState *dev_soc, > Error **errp) > SysBusDevice *busdev; > Error *err = NULL; > int i; > - > MemoryRegion *system_memory = get_system_memory(); > - MemoryRegion *sram = g_new(MemoryRegion, 1); > - MemoryRegion *flash = g_new(MemoryRegion, 1); > - MemoryRegion *flash_alias = g_new(MemoryRegion, 1); > > - memory_region_init_rom(flash, OBJECT(dev_soc), "STM32F205.flash", > + memory_region_init_rom(&s->flash, OBJECT(dev_soc), "STM32F205.flash", > FLASH_SIZE, &error_fatal); > - memory_region_init_alias(flash_alias, OBJECT(dev_soc), > - "STM32F205.flash.alias", flash, 0, FLASH_SIZE); > + memory_region_init_alias(&s->flash_alias, OBJECT(dev_soc), > + "STM32F205.flash.alias", &s->flash, 0, > FLASH_SIZE); > > - memory_region_add_subregion(system_memory, FLASH_BASE_ADDRESS, flash); > - memory_region_add_subregion(system_memory, 0, flash_alias); > + memory_region_add_subregion(system_memory, FLASH_BASE_ADDRESS, > &s->flash); > + memory_region_add_subregion(system_memory, 0, &s->flash_alias); > > - memory_region_init_ram(sram, NULL, "STM32F205.sram", SRAM_SIZE, > + memory_region_init_ram(&s->sram, NULL, "STM32F205.sram", SRAM_SIZE, > &error_fatal); > - memory_region_add_subregion(system_memory, SRAM_BASE_ADDRESS, sram); > + memory_region_add_subregion(system_memory, SRAM_BASE_ADDRESS, &s->sram); > > armv7m = DEVICE(&s->armv7m); > qdev_prop_set_uint32(armv7m, "num-irq", 96); > -- > 2.21.1 > >