Commit c910e2e2 authored by Simon Glass's avatar Simon Glass
Browse files

dm: Avoid accessing uclasses before they are ready



Don't allow access to uclasses before they have been initialised.
Signed-off-by: default avatarSimon Glass <sjg@chromium.org>
parent f4cdead2
......@@ -95,7 +95,7 @@ are provided in test/dm. To run them, try:
You should see something like this:
<...U-Boot banner...>
Running 16 driver model tests
Running 17 driver model tests
Test: dm_test_autobind
Test: dm_test_autoprobe
Test: dm_test_children
......@@ -116,6 +116,7 @@ You should see something like this:
Test: dm_test_pre_reloc
Test: dm_test_remove
Test: dm_test_uclass
Test: dm_test_uclass_before_ready
Failures: 0
......
......@@ -23,6 +23,8 @@ struct uclass *uclass_find(enum uclass_id key)
{
struct uclass *uc;
if (!gd->dm_root)
return NULL;
/*
* TODO(sjg@chromium.org): Optimise this, perhaps moving the found
* node to the start of the list, or creating a linear array mapping
......
......@@ -570,3 +570,17 @@ static int dm_test_pre_reloc(struct dm_test_state *dms)
return 0;
}
DM_TEST(dm_test_pre_reloc, 0);
static int dm_test_uclass_before_ready(struct dm_test_state *dms)
{
struct uclass *uc;
ut_assertok(uclass_get(UCLASS_TEST, &uc));
memset(gd, '\0', sizeof(*gd));
ut_asserteq_ptr(NULL, uclass_find(UCLASS_TEST));
return 0;
}
DM_TEST(dm_test_uclass_before_ready, 0);
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment