diff options
author | Ahmad Fatoum <a.fatoum@pengutronix.de> | 2021-11-25 17:10:36 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2021-12-07 15:03:31 +0100 |
commit | 22d06d7d72d781d16db7f8292181d51752e2a860 (patch) | |
tree | e9763e924c6060a14c8879d86591d278bb29c9e7 | |
parent | c05ef729888d822348299913bdfd9743af2c3eed (diff) | |
download | barebox-22d06d7d72d781d16db7f8292181d51752e2a860.tar.gz barebox-22d06d7d72d781d16db7f8292181d51752e2a860.tar.xz |
state: mark state init errors specially
First boot with uninitialized state is needlessly verbose. As
preparation for making boot less noisy on fresh state, mark all the
error messages with newly introduced dev_err_state_init().
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Link: https://lore.barebox.org/20211125161042.3829996-2-a.fatoum@pengutronix.de
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r-- | common/state/backend_format_raw.c | 3 | ||||
-rw-r--r-- | common/state/backend_storage.c | 7 | ||||
-rw-r--r-- | common/state/state.c | 4 | ||||
-rw-r--r-- | common/state/state.h | 7 |
4 files changed, 12 insertions, 9 deletions
diff --git a/common/state/backend_format_raw.c b/common/state/backend_format_raw.c index ea962606cc..aeee41d07c 100644 --- a/common/state/backend_format_raw.c +++ b/common/state/backend_format_raw.c @@ -116,9 +116,8 @@ static int backend_format_raw_verify(struct state_backend_format *format, header = (struct backend_raw_header *)buf; crc = crc32(0, header, sizeof(*header) - sizeof(uint32_t)); if (crc != header->header_crc) { - dev_err(backend_raw->dev, "Error, invalid header crc in raw format, calculated 0x%08x, found 0x%08x\n", + return dev_err_state_init(backend_raw->dev, -EINVAL, "header crc in raw format, calculated 0x%08x, found 0x%08x\n", crc, header->header_crc); - return -EINVAL; } if (magic && magic != header->magic) { diff --git a/common/state/backend_storage.c b/common/state/backend_storage.c index 7fc7acfdcb..2d7d9a4a63 100644 --- a/common/state/backend_storage.c +++ b/common/state/backend_storage.c @@ -171,11 +171,8 @@ int state_storage_read(struct state_backend_storage *storage, dev_dbg(storage->dev, "Checking redundant buckets finished.\n"); - if (!bucket_used) { - dev_err(storage->dev, "Failed to find any valid state copy in any bucket\n"); - - return -ENOENT; - } + if (!bucket_used) + return dev_err_state_init(storage->dev, -ENOENT, "no valid state copy in any bucket\n"); dev_info(storage->dev, "Using bucket %d@0x%08llx\n", bucket_used->num, (long long) bucket_used->offset); diff --git a/common/state/state.c b/common/state/state.c index 469ee62d40..8c34ae83e5 100644 --- a/common/state/state.c +++ b/common/state/state.c @@ -101,8 +101,8 @@ static int state_do_load(struct state *state, enum state_flags flags) ret = state_storage_read(&state->storage, state->format, state->magic, &buf, &len, flags); if (ret) { - dev_err(&state->dev, "Failed to read state with format %s, %d\n", - state->format->name, ret); + dev_err_state_init(&state->dev, ret, "format %s read failed\n", + state->format->name); goto out; } diff --git a/common/state/state.h b/common/state/state.h index 1881d92ea7..d858c9e427 100644 --- a/common/state/state.h +++ b/common/state/state.h @@ -1,5 +1,6 @@ #include <linux/types.h> #include <linux/list.h> +#include <linux/err.h> #include <driver.h> struct state; @@ -266,3 +267,9 @@ static inline int state_string_copy_to_raw(struct state_string *string, return 0; } + +#define dev_err_state_init(dev, ret, fmt, ...) ({ \ + int __ret = (ret); \ + dev_err((dev), "init error: %pe: " fmt, ERR_PTR(__ret), ##__VA_ARGS__); \ + __ret; \ +}) |