mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
dt-overlay: Remove ASSERT_UNREACHABLE from add_nodes()
The assumption stated in the comment that the code will never get there
is incorrect. In overlay_get_nodes_info() we manually combine path from
target-path property with the node path by adding '/' as a separator.
This can differ from a path obtained by libfdt due to more advanced
logic used there which can for instance get rid of excessive slashes.
In case of incorrect target-path (e.g. target-path = "//axi"), the
comparison in dt_find_node_by_path_from() can fail triggering the assert
in debug builds.
Fixes: 0c0facdab6 ("xen/arm: Implement device tree node addition functionalities")
Signed-off-by: Michal Orzel <michal.orzel@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Acked-by: Julien Grall <jgrall@amazon.com>
This commit is contained in:
1 parent
656ac422c4
commit
81862825e8
1 file changed
-4
@@ -596,11 +596,7 @@ static long add_nodes(struct overlay_track *tr, char **nodes_full_path)
|
||||
overlay_node = dt_find_node_by_path_from(tr->dt_host_new,
|
||||
nodes_full_path[j]);
|
||||
if ( overlay_node == NULL )
|
||||
{
|
||||
/* Sanity check. But code will never come here. */
|
||||
ASSERT_UNREACHABLE();
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
/*
|
||||
* Find previous and next node to overlay_node in dt_host_new. We will
|
||||
|
||||