It is better and simpler to do this at the start, so that an uninited
data structure doesn't cause problems. Update upl_init() to set up the
remaining two alists and remove this from the reading/test code.

Signed-off-by: Simon Glass <s...@chromium.org>
---

 boot/upl_common.c    | 2 ++
 common/spl/spl_upl.c | 2 --
 test/boot/upl.c      | 2 --
 3 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/boot/upl_common.c b/boot/upl_common.c
index 3924423abd5..69a6673a9bf 100644
--- a/boot/upl_common.c
+++ b/boot/upl_common.c
@@ -57,4 +57,6 @@ void upl_init(struct upl *upl)
        alist_init_struct(&upl->mem, struct upl_mem);
        alist_init_struct(&upl->memmap, struct upl_memmap);
        alist_init_struct(&upl->memres, struct upl_memres);
+       alist_init_struct(&upl->serial.reg, struct memregion);
+       alist_init_struct(&upl->graphics.reg, struct memregion);
 }
diff --git a/common/spl/spl_upl.c b/common/spl/spl_upl.c
index 067d437150f..81a106570b8 100644
--- a/common/spl/spl_upl.c
+++ b/common/spl/spl_upl.c
@@ -75,7 +75,6 @@ static int write_serial(struct upl_serial *ser)
        ser->current_speed = gd->baudrate;
        region.base = info.addr;
        region.size = info.size;
-       alist_init_struct(&ser->reg, struct memregion);
        if (!alist_add(&ser->reg, region))
                return -ENOMEM;
        ser->reg_io_shift = info.reg_shift;
@@ -94,7 +93,6 @@ static int write_graphics(struct upl_graphics *gra)
        struct memregion region;
        struct udevice *dev;
 
-       alist_init_struct(&gra->reg, struct memregion);
        uclass_find_first_device(UCLASS_VIDEO, &dev);
        if (!dev || !device_active(dev))
                return log_msg_ret("vid", -ENOENT);
diff --git a/test/boot/upl.c b/test/boot/upl.c
index c2b571e06c4..89201e445ff 100644
--- a/test/boot/upl.c
+++ b/test/boot/upl.c
@@ -136,7 +136,6 @@ int upl_get_test_data(struct unit_test_state *uts, struct 
upl *upl)
        upl->serial.compatible = "ns16550a";
        upl->serial.clock_frequency = 1843200;
        upl->serial.current_speed = 115200;
-       alist_init_struct(&upl->serial.reg, struct memregion);
        ut_assertok(add_region(uts, &upl->serial.reg, 0xf1de0000, 0x100));
        upl->serial.reg_io_shift = 2;
        upl->serial.reg_offset = 0x40;
@@ -144,7 +143,6 @@ int upl_get_test_data(struct unit_test_state *uts, struct 
upl *upl)
        upl->serial.virtual_reg = 0x20000000;
        upl->serial.access_type = UPLAT_MMIO;
 
-       alist_init_struct(&upl->graphics.reg, struct memregion);
        ut_assertok(add_region(uts, &upl->graphics.reg, 0xd0000000, 
0x10000000));
        upl->graphics.width = 1280;
        upl->graphics.height = 1280;
-- 
2.43.0

Reply via email to