diff --git a/drivers/core/root.c b/drivers/core/root.c index 93ab568296809b23dab818fd0d9bdc0e78d17e98..33cfde6a5c39332c7f0df70d16893bc78cf16ffb 100644 --- a/drivers/core/root.c +++ b/drivers/core/root.c @@ -44,8 +44,10 @@ struct udevice *dm_root(void) void dm_fixup_for_gd_move(struct global_data *new_gd) { /* The sentinel node has moved, so update things that point to it */ - new_gd->uclass_root.next->prev = &new_gd->uclass_root; - new_gd->uclass_root.prev->next = &new_gd->uclass_root; + if (gd->dm_root) { + new_gd->uclass_root.next->prev = &new_gd->uclass_root; + new_gd->uclass_root.prev->next = &new_gd->uclass_root; + } } fdt_addr_t dm_get_translation_offset(void)