mirror of https://github.com/xemu-project/xemu.git
dt: allow add_subnode to create root subnodes
Our subnode creation helper can't handle creation of root subnodes, like "/memory". Fix this by allowing the parent node to be an empty string, indicating the root node. Signed-off-by: Alexander Graf <agraf@suse.de> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@petalogix.com>
This commit is contained in:
parent
94282e7146
commit
c640d08834
|
@ -151,6 +151,7 @@ int qemu_devtree_add_subnode(void *fdt, const char *name)
|
||||||
char *dupname = g_strdup(name);
|
char *dupname = g_strdup(name);
|
||||||
char *basename = strrchr(dupname, '/');
|
char *basename = strrchr(dupname, '/');
|
||||||
int retval;
|
int retval;
|
||||||
|
int parent = 0;
|
||||||
|
|
||||||
if (!basename) {
|
if (!basename) {
|
||||||
g_free(dupname);
|
g_free(dupname);
|
||||||
|
@ -160,7 +161,11 @@ int qemu_devtree_add_subnode(void *fdt, const char *name)
|
||||||
basename[0] = '\0';
|
basename[0] = '\0';
|
||||||
basename++;
|
basename++;
|
||||||
|
|
||||||
retval = fdt_add_subnode(fdt, findnode_nofail(fdt, dupname), basename);
|
if (dupname[0]) {
|
||||||
|
parent = findnode_nofail(fdt, dupname);
|
||||||
|
}
|
||||||
|
|
||||||
|
retval = fdt_add_subnode(fdt, parent, basename);
|
||||||
if (retval < 0) {
|
if (retval < 0) {
|
||||||
fprintf(stderr, "FDT: Failed to create subnode %s: %s\n", name,
|
fprintf(stderr, "FDT: Failed to create subnode %s: %s\n", name,
|
||||||
fdt_strerror(retval));
|
fdt_strerror(retval));
|
||||||
|
|
Loading…
Reference in New Issue