summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAhmad Fatoum <a.fatoum@pengutronix.de>2021-11-25 17:10:36 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2021-12-07 15:03:31 +0100
commit22d06d7d72d781d16db7f8292181d51752e2a860 (patch)
treee9763e924c6060a14c8879d86591d278bb29c9e7
parentc05ef729888d822348299913bdfd9743af2c3eed (diff)
downloadbarebox-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.c3
-rw-r--r--common/state/backend_storage.c7
-rw-r--r--common/state/state.c4
-rw-r--r--common/state/state.h7
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; \
+})