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: 0c0facdab6f5 ("xen/arm: Implement device tree node addition functionalities") Signed-off-by: Michal Orzel <michal.or...@amd.com> Reviewed-by: Stefano Stabellini <sstabell...@kernel.org> Acked-by: Julien Grall <jgr...@amazon.com> --- Changes in v2: - Add Rb,Ab --- xen/common/dt-overlay.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/xen/common/dt-overlay.c b/xen/common/dt-overlay.c index 8606b14d1e8e..d18bd12bd38d 100644 --- a/xen/common/dt-overlay.c +++ b/xen/common/dt-overlay.c @@ -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 -- 2.25.1