drivers: core: device: set new parent when old parent is NULL

The current logic does not update the new parent in device_reparent() if
old parent is NULL. The behavior is not desired. Fix it by setting the
parent in this case.

Fixes: cfecbaf4e7 ("dm: core: add support for device re-parenting")
Signed-off-by: Yang Xiwen <forbidden405@outlook.com>
This commit is contained in:
Yang Xiwen
2026-01-20 03:07:18 +08:00
committed by Tom Rini
parent 6b2d05748c
commit d7aea17d2e

View File

@@ -285,6 +285,14 @@ int device_reparent(struct udevice *dev, struct udevice *new_parent)
assert(dev);
assert(new_parent);
if (!dev->parent) {
assert(list_empty(&dev->sibling_node));
list_add_tail(&dev->sibling_node, &new_parent->child_head);
dev->parent = new_parent;
return 0;
}
device_foreach_child_safe(pos, n, dev->parent) {
if (pos->driver != dev->driver)
continue;