diff options
author | Grant Likely <grant.likely@secretlab.ca> | 2012-11-14 17:37:12 -0500 |
---|---|---|
committer | Grant Likely <grant.likely@secretlab.ca> | 2012-11-17 07:05:57 -0500 |
commit | c22618a11d1ba2966bd2cfd5e4918ed4f2dad13e (patch) | |
tree | e317e1413afd8f80ea4ddc036703ff447c1c0901 /drivers/of/fdt.c | |
parent | 31982e52f0f5d6d51e69d5c4c4a7be5d52307c6e (diff) |
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/fdt.c')
-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 c2b08dcdbc53..c8be32644c85 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, | |||
199 | np = unflatten_dt_alloc(&mem, sizeof(struct device_node) + allocl, | 199 | np = unflatten_dt_alloc(&mem, sizeof(struct device_node) + allocl, |
200 | __alignof__(struct device_node)); | 200 | __alignof__(struct device_node)); |
201 | if (allnextpp) { | 201 | if (allnextpp) { |
202 | char *fn; | ||
202 | memset(np, 0, sizeof(*np)); | 203 | memset(np, 0, sizeof(*np)); |
203 | np->full_name = ((char *)np) + sizeof(struct device_node); | 204 | np->full_name = fn = ((char *)np) + sizeof(*np); |
204 | if (new_format) { | 205 | if (new_format) { |
205 | char *fn = np->full_name; | ||
206 | /* rebuild full path for new format */ | 206 | /* rebuild full path for new format */ |
207 | if (dad && dad->parent) { | 207 | if (dad && dad->parent) { |
208 | strcpy(fn, dad->full_name); | 208 | strcpy(fn, dad->full_name); |
@@ -216,9 +216,9 @@ static unsigned long unflatten_dt_node(struct boot_param_header *blob, | |||
216 | fn += strlen(fn); | 216 | fn += strlen(fn); |
217 | } | 217 | } |
218 | *(fn++) = '/'; | 218 | *(fn++) = '/'; |
219 | memcpy(fn, pathp, l); | 219 | } |
220 | } else | 220 | memcpy(fn, pathp, l); |
221 | memcpy(np->full_name, pathp, l); | 221 | |
222 | prev_pp = &np->properties; | 222 | prev_pp = &np->properties; |
223 | **allnextpp = np; | 223 | **allnextpp = np; |
224 | *allnextpp = &np->allnext; | 224 | *allnextpp = &np->allnext; |