of_unregister_fixup must also be called in the release function. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx> --- This depends on the patch "of: add a function to remove an of_fixup" I just sent to the list --- common/state.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/common/state.c b/common/state.c index fb13ae272db9..bd9c5a712aac 100644 --- a/common/state.c +++ b/common/state.c @@ -435,13 +435,6 @@ static struct state *state_new(const char *name) return state; } -void state_release(struct state *state) -{ - list_del(&state->list); - unregister_device(&state->dev); - free(state); -} - static struct state_variable *state_find_var(struct state *state, const char *name) { @@ -760,6 +753,14 @@ static int of_state_fixup(struct device_node *root, void *ctx) return ret; } +void state_release(struct state *state) +{ + of_unregister_fixup(of_state_fixup, state); + list_del(&state->list); + unregister_device(&state->dev); + free(state); +} + /* * state_new_from_node - create a new state instance from a device_node * -- 2.1.4 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox