bootflow: bootmeth_efi: don't free buffer
authorShantur Rathore <i@shantur.com>
Sun, 19 Nov 2023 16:55:01 +0000 (16:55 +0000)
committerTom Rini <trini@konsulko.com>
Sat, 9 Dec 2023 18:16:08 +0000 (13:16 -0500)
bootmeth_efi doesn't allocate any buffer to load efi in any case.
enable static buffer flag for all cases.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Shantur Rathore <i@shantur.com>
boot/bootmeth_efi.c

index e884dc6..446cb73 100644 (file)
@@ -160,7 +160,6 @@ static int efiload_read_file(struct bootflow *bflow, ulong addr)
        if (ret)
                return log_msg_ret("read", ret);
        bflow->buf = map_sysmem(addr, bflow->size);
-       bflow->flags |= BOOTFLOWF_STATIC_BUF;
 
        set_efi_bootdev(desc, bflow);
 
@@ -404,6 +403,12 @@ static int distro_efi_read_bootflow(struct udevice *dev, struct bootflow *bflow)
 {
        int ret;
 
+       /*
+        * bootmeth_efi doesn't allocate any buffer neither for blk nor net device
+        * set flag to avoid freeing static buffer.
+        */
+       bflow->flags |= BOOTFLOWF_STATIC_BUF;
+
        if (bootmeth_uses_network(bflow)) {
                /* we only support reading from one device, so ignore 'dev' */
                ret = distro_efi_read_bootflow_net(bflow);