diff options
author | Grant Likely <grant.likely@secretlab.ca> | 2012-11-14 22:37:12 +0000 |
---|---|---|
committer | Grant Likely <grant.likely@secretlab.ca> | 2012-11-17 12:05:57 +0000 |
commit | c22618a11d1ba2966bd2cfd5e4918ed4f2dad13e (patch) | |
tree | e317e1413afd8f80ea4ddc036703ff447c1c0901 /drivers/of | |
parent | 31982e52f0f5d6d51e69d5c4c4a7be5d52307c6e (diff) | |
download | op-kernel-dev-c22618a11d1ba2966bd2cfd5e4918ed4f2dad13e.zip op-kernel-dev-c22618a11d1ba2966bd2cfd5e4918ed4f2dad13e.tar.gz |
drivers/of: Constify device_node->name and ->path_component_name
Neither of these should ever be changed once set. Make them const and
fix up the users that try to modify it in-place. In one case
kmalloc+memcpy is replaced with kstrdup() to avoid modifying the string.
Build tested with defconfigs on ARM, PowerPC, Sparc, MIPS, x86 among
others.
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Acked-by: David S. Miller <davem@davemloft.net>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Julian Calaby <julian.calaby@gmail.com>
Diffstat (limited to 'drivers/of')
-rw-r--r-- | drivers/of/fdt.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c index c2b08dc..c8be326 100644 --- a/drivers/of/fdt.c +++ b/drivers/of/fdt.c @@ -199,10 +199,10 @@ static unsigned long unflatten_dt_node(struct boot_param_header *blob, np = unflatten_dt_alloc(&mem, sizeof(struct device_node) + allocl, __alignof__(struct device_node)); if (allnextpp) { + char *fn; memset(np, 0, sizeof(*np)); - np->full_name = ((char *)np) + sizeof(struct device_node); + np->full_name = fn = ((char *)np) + sizeof(*np); if (new_format) { - char *fn = np->full_name; /* rebuild full path for new format */ if (dad && dad->parent) { strcpy(fn, dad->full_name); @@ -216,9 +216,9 @@ static unsigned long unflatten_dt_node(struct boot_param_header *blob, fn += strlen(fn); } *(fn++) = '/'; - memcpy(fn, pathp, l); - } else - memcpy(np->full_name, pathp, l); + } + memcpy(fn, pathp, l); + prev_pp = &np->properties; **allnextpp = np; *allnextpp = &np->allnext; |