diff mbox series

[10/13] cbfs: Return the error code from file_cbfs_init()

Message ID 20200513142359.147589-11-sjg@chromium.org
State Superseded
Headers show
Series x86: cbfs: Various clean-ups to CBFS implementation | expand

Commit Message

Simon Glass May 13, 2020, 2:23 p.m. UTC
We may as well return the error code and use it directly in the command
code. CBFS still uses its own error enum which we may be able to remove,
but leave it for now.

Signed-off-by: Simon Glass <sjg at chromium.org>
---

 cmd/cbfs.c     |  3 +--
 fs/cbfs/cbfs.c | 23 +++++++++++++++--------
 include/cbfs.h |  6 +++---
 3 files changed, 19 insertions(+), 13 deletions(-)

Comments

Bin Meng May 21, 2020, 2:32 a.m. UTC | #1
On Wed, May 13, 2020 at 10:24 PM Simon Glass <sjg at chromium.org> wrote:
>
> We may as well return the error code and use it directly in the command
> code. CBFS still uses its own error enum which we may be able to remove,
> but leave it for now.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
>  cmd/cbfs.c     |  3 +--
>  fs/cbfs/cbfs.c | 23 +++++++++++++++--------
>  include/cbfs.h |  6 +++---
>  3 files changed, 19 insertions(+), 13 deletions(-)
>

Reviewed-by: Bin Meng <bmeng.cn at gmail.com>
diff mbox series

Patch

diff --git a/cmd/cbfs.c b/cmd/cbfs.c
index 98e652a4e7..83bdee6252 100644
--- a/cmd/cbfs.c
+++ b/cmd/cbfs.c
@@ -28,8 +28,7 @@  static int do_cbfs_init(cmd_tbl_t *cmdtp, int flag, int argc,
 			return 1;
 		}
 	}
-	file_cbfs_init(end_of_rom);
-	if (cbfs_get_result() != CBFS_SUCCESS) {
+	if (file_cbfs_init(end_of_rom)) {
 		printf("%s.\n", file_cbfs_error());
 		return 1;
 	}
diff --git a/fs/cbfs/cbfs.c b/fs/cbfs/cbfs.c
index 58de258da3..0db7cb9147 100644
--- a/fs/cbfs/cbfs.c
+++ b/fs/cbfs/cbfs.c
@@ -253,19 +253,26 @@  static int cbfs_load_header_ptr(struct cbfs_priv *priv, ulong base)
 	return 0;
 }
 
-static void cbfs_init(struct cbfs_priv *priv, ulong end_of_rom)
+static int cbfs_init(struct cbfs_priv *priv, ulong end_of_rom)
 {
-	if (file_cbfs_load_header(priv, end_of_rom))
-		return;
+	int ret;
 
-	file_cbfs_fill_cache(priv, priv->header.rom_size, priv->header.align);
-	if (priv->result == CBFS_SUCCESS)
-		priv->initialised = true;
+	ret = file_cbfs_load_header(priv, end_of_rom);
+	if (ret)
+		return ret;
+
+	ret = file_cbfs_fill_cache(priv, priv->header.rom_size,
+				   priv->header.align);
+	if (ret)
+		return ret;
+	priv->initialised = true;
+
+	return 0;
 }
 
-void file_cbfs_init(ulong end_of_rom)
+int file_cbfs_init(ulong end_of_rom)
 {
-	cbfs_init(&cbfs_s, end_of_rom);
+	return cbfs_init(&cbfs_s, end_of_rom);
 }
 
 int cbfs_init_mem(ulong base, ulong size, struct cbfs_priv **privp)
diff --git a/include/cbfs.h b/include/cbfs.h
index 80ce539070..5cc27d682d 100644
--- a/include/cbfs.h
+++ b/include/cbfs.h
@@ -100,10 +100,10 @@  enum cbfs_result cbfs_get_result(void);
 /**
  * file_cbfs_init() - Initialize the CBFS driver and load metadata into RAM.
  *
- * @end_of_rom: Points to the end of the ROM the CBFS should be read
- *                      from.
+ * @end_of_rom: Points to the end of the ROM the CBFS should be read from
+ * @return 0 if OK, -ve on error
  */
-void file_cbfs_init(ulong end_of_rom);
+int file_cbfs_init(ulong end_of_rom);
 
 /**
  * file_cbfs_get_header() - Get the header structure for the current CBFS.