[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH V1 08/29] xen/dts: Don't add a fake property "name" in the device tree
On new Flat Device Tree version, the property "name" may not exist. The property is never used in Xen code except to set the field "name" of dt_device_node. For convenience, remove the fake property. It will save space during the creation of the dom0 FDT. Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx> --- xen/common/device_tree.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/xen/common/device_tree.c b/xen/common/device_tree.c index be592d2..07a19ac 100644 --- a/xen/common/device_tree.c +++ b/xen/common/device_tree.c @@ -1543,6 +1543,7 @@ static unsigned long __init unflatten_dt_node(const void *fdt, if ( !has_name ) { char *p1 = pathp, *ps = pathp, *pa = NULL; + char *tmp = NULL; int sz; while ( *p1 ) @@ -1556,25 +1557,21 @@ static unsigned long __init unflatten_dt_node(const void *fdt, if ( pa < ps ) pa = p1; sz = (pa - ps) + 1; - pp = unflatten_dt_alloc(&mem, sizeof(struct dt_property) + sz, - __alignof__(struct dt_property)); + + tmp = unflatten_dt_alloc(&mem, sz, 1); if ( allnextpp ) { - pp->name = "name"; - pp->length = sz; - pp->value = pp + 1; - *prev_pp = pp; - prev_pp = &pp->next; - memcpy(pp->value, ps, sz - 1); - ((char *)pp->value)[sz - 1] = 0; - dt_dprintk("fixed up name for %s -> %s\n", pathp, - (char *)pp->value); + memcpy(tmp, ps, sz - 1); + np->name = tmp; + tmp[sz - 1] = 0; + dt_dprintk("fixed up name for %s -> %s\n", pathp, np->name); } } + if ( allnextpp ) { *prev_pp = NULL; - np->name = dt_get_property(np, "name", NULL); + np->name = (np->name) ? : dt_get_property(np, "name", NULL); np->type = dt_get_property(np, "device_type", NULL); if ( !np->name ) -- 1.7.10.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |