[PATCH 14/14] smbios: Correct error handling when writing tables

Heinrich Schuchardt xypron.glpk at gmx.de
Mon Jun 24 06:36:38 CEST 2024



Am 23. Juni 2024 22:30:33 MESZ schrieb Simon Glass <sjg at chromium.org>:
>Since write_smbios_table() returns an address, we cannot use it to
>return and error number. Also, failing on sysinfo_detect() breaks

IS_ERR_VALUE() could serve as template for conveying errors in addresses.



>existing boards, e.g. chromebook_link
>
>Correct this by logging and swallowing the error.
>
>Signed-off-by: Simon Glass <sjg at chromium.org>
>Fixes: a5a57562856 ("lib: smbios: Detect system properties via...")
>---
>
>(no changes since v1)
>
> lib/smbios.c | 10 ++++++++--
> 1 file changed, 8 insertions(+), 2 deletions(-)
>
>diff --git a/lib/smbios.c b/lib/smbios.c
>index fb6eaf1d5ca..4126466e34a 100644
>--- a/lib/smbios.c
>+++ b/lib/smbios.c
>@@ -5,6 +5,8 @@
>  * Adapted from coreboot src/arch/x86/smbios.c
>  */
> 
>+#define LOG_CATEGORY	LOGC_BOARD
>+
> #include <dm.h>
> #include <env.h>
> #include <linux/stringify.h>
>@@ -596,8 +598,12 @@ ulong write_smbios_table(ulong addr)
> 
> 			parent_node = dev_read_subnode(ctx.dev, "smbios");
> 			ret = sysinfo_detect(ctx.dev);
>-			if (ret)
>-				return ret;
>+
>+			/*
>+			 * ignore the error since many boards don't implement
>+			 * this and we can still use the info in the devicetree
>+			 */
>+			ret = log_msg_ret("sys", ret);

Can we make this a debug message?
It is nothing an end user should worry about.

Best regards

Heinrich

> 		}
> 	} else {
> 		ctx.dev = NULL;


More information about the U-Boot mailing list