[PATCH 40/42] state: Do not load state during state_new_from_node

Sascha Hauer s.hauer at pengutronix.de
Fri Mar 31 00:03:44 PDT 2017


The caller of state_new_from_node() may have it's own ideas what to
do when loading the state fails, so do not load it in the initialization
function, but instead let the caller do it.

Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
 common/state/state.c | 5 -----
 drivers/misc/state.c | 6 ++++++
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/common/state/state.c b/common/state/state.c
index 1232ff3207..bdeda2e5a1 100644
--- a/common/state/state.c
+++ b/common/state/state.c
@@ -632,11 +632,6 @@ struct state *state_new_from_node(struct device_node *node, char *path,
 		goto out_release_state;
 	}
 
-	ret = state_load(state);
-	if (ret) {
-		dev_warn(&state->dev, "Failed to load persistent state, continuing with defaults, %d\n", ret);
-	}
-
 	dev_info(&state->dev, "New state registered '%s'\n", alias);
 
 	return state;
diff --git a/drivers/misc/state.c b/drivers/misc/state.c
index b43aee60fe..98ed42e757 100644
--- a/drivers/misc/state.c
+++ b/drivers/misc/state.c
@@ -26,6 +26,7 @@ static int state_probe(struct device_d *dev)
 	struct device_node *np = dev->device_node;
 	struct state *state;
 	bool readonly = false;
+	int ret;
 
 	state = state_new_from_node(np, NULL, 0, 0, readonly);
 	if (IS_ERR(state)) {
@@ -35,6 +36,11 @@ static int state_probe(struct device_d *dev)
 		return ret;
 	}
 
+	ret = state_load(state);
+	if (ret)
+		dev_warn(dev, "Failed to load persistent state, continuing with defaults, %d\n",
+			 ret);
+
 	return 0;
 }
 
-- 
2.11.0




More information about the barebox mailing list