
[...]
str = "Unknown"; for (;;) {
@@ -151,8 +151,7 @@ static int smbios_add_prop_si(struct smbios_ctx *ctx, const char *prop, const char *str;
str = ofnode_read_string(ctx->node, prop);
if (str)
return smbios_add_string(ctx, str);
return smbios_add_string(ctx, str); } return 0;
@@ -231,7 +230,7 @@ static int smbios_write_type0(ulong *current, int handle, t->vendor = smbios_add_string(ctx, "U-Boot");
t->bios_ver = smbios_add_prop(ctx, "version");
if (!t->bios_ver)
if (!strcmp(ctx->last_str, "Unknown"))
That is really ugly...checking the ctx value looking for a side effect.
Can you not have smbios_add_prop() continue to return NULL in this case?
Hmm I don't know, but I wonder why I am not just checking t->bios_ver for Unknown. I'll have a look and change it
Ok, this can't be changed as easily. smbios_add_prop() will not return NULL in any case. It returns an integer. With the cleanup, it will always writes 'Uknown' and not return 0 anymore. I can add that default value you suggested but the ctx->last_str is still used on the next line anyway.
Thanks /Ilias
[...]
Thanks /Ilias