aboutsummaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorSimon Glass2019-12-06 21:42:06 -0700
committerBin Meng2019-12-15 11:44:14 +0800
commit83f288f236505e2e73da8c8d2d72f97c0fe5b06b (patch)
tree972bb71f79680279aa8629b4a0b7e874b94cd799 /arch
parent37a508f8b7d580334b0a9b886539d7816944ece0 (diff)
x86: Tidy up error handling in mrccache_save()
This function is a bit confusing at present due to the error handling. Update it to remove the goto, returning errors as they happen. While we are here, use hex for the data size since this is the norm in U-Boot. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/lib/mrccache.c19
1 files changed, 7 insertions, 12 deletions
diff --git a/arch/x86/lib/mrccache.c b/arch/x86/lib/mrccache.c
index 6e561fe5286..712bacd5d28 100644
--- a/arch/x86/lib/mrccache.c
+++ b/arch/x86/lib/mrccache.c
@@ -168,7 +168,7 @@ int mrccache_update(struct udevice *sf, struct mrc_region *entry,
cur);
if (ret) {
debug("Failed to write to SPI flash\n");
- return ret;
+ return log_msg_ret("Cannot update mrccache", ret);
}
return 0;
@@ -261,28 +261,23 @@ int mrccache_save(void)
if (!gd->arch.mrc_output_len)
return 0;
- debug("Saving %d bytes of MRC output data to SPI flash\n",
+ debug("Saving %#x bytes of MRC output data to SPI flash\n",
gd->arch.mrc_output_len);
ret = mrccache_get_region(&sf, &entry);
if (ret)
- goto err_entry;
+ return log_msg_ret("Cannot get region", ret);
ret = device_probe(sf);
if (ret)
- goto err_entry;
+ return log_msg_ret("Cannot probe device", ret);
cache = gd->arch.mrc_cache;
ret = mrccache_update(sf, &entry, cache);
- if (!ret) {
+ if (!ret)
debug("Saved MRC data with checksum %04x\n", cache->checksum);
- } else if (ret == -EEXIST) {
+ else if (ret == -EEXIST)
debug("MRC data is the same as last time, skipping save\n");
- ret = 0;
- }
-err_entry:
- if (ret)
- debug("%s: Failed: %d\n", __func__, ret);
- return ret;
+ return 0;
}
int mrccache_spl_save(void)