]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
bootstd: Tidy up reporting of errors
authorSimon Glass <sjg@chromium.org>
Wed, 10 May 2023 22:34:26 +0000 (16:34 -0600)
committerTom Rini <trini@konsulko.com>
Sat, 13 May 2023 13:52:32 +0000 (09:52 -0400)
In a few cases the error handling is not quite right. Make sure we
return the actual error in distro_efi_read_bootflow_file() rather than
-EINVAL. Return -IO when a file cannot be read. Also show the error name
if available.

This does not change operation, but does make it easier to diagnose
problems.

Signed-off-by: Simon Glass <sjg@chromium.org>
boot/bootmeth-uclass.c
boot/bootmeth_efi.c
cmd/bootflow.c
test/boot/bootflow.c

index 2aee1e0f0c56e039b288976b155e6b36c4fd1aa4..3b3e0614dafa01de3149e62aefde2feb43db6f8a 100644 (file)
@@ -319,7 +319,7 @@ static int alloc_file(const char *fname, uint size, void **bufp)
                return log_msg_ret("read", ret);
        }
        if (size != bytes_read)
-               return log_msg_ret("bread", -EINVAL);
+               return log_msg_ret("bread", -EIO);
        buf[size] = '\0';
 
        *bufp = buf;
index 6f70f2229b9b4242fb7200a27d2d9a8092c7a50d..af31fbfc85db52ebc94fdedfbe83f0fc9e09dafc 100644 (file)
@@ -235,7 +235,7 @@ static int distro_efi_read_bootflow_file(struct udevice *dev,
 
        ret = efiload_read_file(desc, bflow);
        if (ret)
-               return log_msg_ret("read", -EINVAL);
+               return log_msg_ret("read", ret);
 
        fdt_addr = env_get_hex("fdt_addr_r", 0);
 
index 6cc58e48c7d0cee8caebde8fff3fcbab51bac904..5c61286a2a7633637c93e8b0d207bdc1fade929f 100644 (file)
@@ -55,7 +55,7 @@ static void report_bootflow_err(struct bootflow *bflow, int err)
                break;
        }
 
-       printf(", err=%d\n", err);
+       printf(", err=%dE\n", err);
 }
 
 /**
index fd0e1d624351079b6aede83685f76e6b506cb87f..bb53bab0c0c22b1801463b87b74f0f249e5d4d77 100644 (file)
@@ -168,21 +168,21 @@ static int bootflow_cmd_scan_e(struct unit_test_state *uts)
        ut_assert_nextlinen("---");
        ut_assert_nextline("Scanning bootdev 'mmc2.bootdev':");
        ut_assert_nextline("  0  syslinux     media   mmc          0  mmc2.bootdev.whole        <NULL>");
-       ut_assert_nextline("     ** No partition found, err=-93");
+       ut_assert_nextline("     ** No partition found, err=-93: Protocol not supported");
        ut_assert_nextline("  1  efi          media   mmc          0  mmc2.bootdev.whole        <NULL>");
-       ut_assert_nextline("     ** No partition found, err=-93");
+       ut_assert_nextline("     ** No partition found, err=-93: Protocol not supported");
 
        ut_assert_nextline("Scanning bootdev 'mmc1.bootdev':");
        ut_assert_nextline("  2  syslinux     media   mmc          0  mmc1.bootdev.whole        <NULL>");
-       ut_assert_nextline("     ** No partition found, err=-2");
+       ut_assert_nextline("     ** No partition found, err=-2: No such file or directory");
        ut_assert_nextline("  3  efi          media   mmc          0  mmc1.bootdev.whole        <NULL>");
-       ut_assert_nextline("     ** No partition found, err=-2");
+       ut_assert_nextline("     ** No partition found, err=-2: No such file or directory");
        ut_assert_nextline("  4  syslinux     ready   mmc          1  mmc1.bootdev.part_1       /extlinux/extlinux.conf");
        ut_assert_nextline("  5  efi          fs      mmc          1  mmc1.bootdev.part_1       efi/boot/bootsbox.efi");
 
        ut_assert_skip_to_line("Scanning bootdev 'mmc0.bootdev':");
        ut_assert_skip_to_line(" 3f  efi          media   mmc          0  mmc0.bootdev.whole        <NULL>");
-       ut_assert_nextline("     ** No partition found, err=-93");
+       ut_assert_nextline("     ** No partition found, err=-93: Protocol not supported");
        ut_assert_nextline("No more bootdevs");
        ut_assert_nextlinen("---");
        ut_assert_nextline("(64 bootflows, 1 valid)");