It is possible for this to happen if something goes wrong very early in
the init sequence. Add a check for this.

Signed-off-by: Simon Glass <[email protected]>
---

Changes in v2:
- Add new patch to allow calling bootstage_mark() before bootstage_init()

 common/bootstage.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/common/bootstage.c b/common/bootstage.c
index 9793b85d4e4..56ef91ad859 100644
--- a/common/bootstage.c
+++ b/common/bootstage.c
@@ -99,6 +99,13 @@ ulong bootstage_add_record(enum bootstage_id id, const char 
*name,
        struct bootstage_data *data = gd->bootstage;
        struct bootstage_record *rec;
 
+       /*
+        * initf_bootstage() is called very early during boot but since hang()
+        * calls bootstage_error() we can be called before bootstage is set up.
+        * Add a check to avoid this.
+        */
+       if (!data)
+               return mark;
        if (flags & BOOTSTAGEF_ALLOC)
                id = data->next_id++;
 
-- 
2.21.0.392.gf8f6787159e-goog

_______________________________________________
U-Boot mailing list
[email protected]
https://lists.denx.de/listinfo/u-boot

Reply via email to