This ports the following barebox commit

| commit 9866966ef9b38bf49276c67f7e258bc2a8df55eb
| Author: Marco Felsch <m.fel...@pengutronix.de>
| Date:   Wed Aug 25 16:49:04 2021 +0200
|
|     state: backend_raw: fix ignoring unpack failures
|
|     This is required to inform the state framework that the state variable
|     set have changed and we need to write the new variable set. Without this
|     fix the new variable set is never written since the state never sets
|     dirty=1 and so state_save() will return early without saving the new
|     variable set.
|
|     Signed-off-by: Marco Felsch <m.fel...@pengutronix.de>
|     Link: 
https://lore.barebox.org/20210825144904.4929-1-m.fel...@pengutronix.de
|     Signed-off-by: Sascha Hauer <s.ha...@pengutronix.de>

Signed-off-by: Marco Felsch <m.fel...@pengutronix.de>
---
 src/barebox-state/backend_format_raw.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/barebox-state/backend_format_raw.c 
b/src/barebox-state/backend_format_raw.c
index 9fade5d..982df12 100644
--- a/src/barebox-state/backend_format_raw.c
+++ b/src/barebox-state/backend_format_raw.c
@@ -181,6 +181,7 @@ static int backend_format_raw_unpack(struct 
state_backend_format *format,
        const struct backend_raw_header *header;
        const void *data;
        struct state_backend_format_raw *backend_raw = get_format_raw(format);
+       int ret = 0;
 
        header = (const struct backend_raw_header *)buf;
        data = buf + sizeof(*header);
@@ -189,12 +190,13 @@ static int backend_format_raw_unpack(struct 
state_backend_format *format,
                if (sv->start + sv->size > header->data_len) {
                        dev_err(backend_raw->dev, "State variable ends behind 
valid data, %s\n",
                                sv->name);
+                       ret = -ENOSPC;
                        continue;
                }
                memcpy(sv->raw, data + sv->start, sv->size);
        }
 
-       return 0;
+       return ret;
 }
 
 static int backend_format_raw_pack(struct state_backend_format *format,
-- 
2.30.2


Reply via email to