diff options
author | Julia Lawall <julia@diku.dk> | 2010-03-10 06:15:01 -0500 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2010-04-07 04:00:42 -0400 |
commit | 43caa61f154da85a620965f3f61c2f45366d8dc7 (patch) | |
tree | ea487c9de02013c1b5d4fad8d1fde7517244bf17 | |
parent | a7df5c5e52a545774c4db1f2adf09ede018ab139 (diff) |
powerpc/pseries/dlpar: Use kasprintf
kasprintf combines kmalloc and sprintf, and takes care of the size
calculation itself.
The semantic patch that makes this change is as follows:
(http://coccinelle.lip6.fr/)
// <smpl>
@@
expression a,flag;
expression list args;
statement S;
@@
a =
- \(kmalloc\|kzalloc\)(...,flag)
+ kasprintf(flag,args)
<... when != a
if (a == NULL || ...) S
...>
- sprintf(a,args);
// </smpl>
Signed-off-by: Julia Lawall <julia@diku.dk>
Acked-by: Nathan Fontenot <nfont@austin.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
-rw-r--r-- | arch/powerpc/platforms/pseries/dlpar.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/arch/powerpc/platforms/pseries/dlpar.c b/arch/powerpc/platforms/pseries/dlpar.c index 1540a41d1a85..d71e58584086 100644 --- a/arch/powerpc/platforms/pseries/dlpar.c +++ b/arch/powerpc/platforms/pseries/dlpar.c | |||
@@ -79,13 +79,12 @@ static struct device_node *dlpar_parse_cc_node(struct cc_workarea *ccwa) | |||
79 | * prepend this to the full_name. | 79 | * prepend this to the full_name. |
80 | */ | 80 | */ |
81 | name = (char *)ccwa + ccwa->name_offset; | 81 | name = (char *)ccwa + ccwa->name_offset; |
82 | dn->full_name = kmalloc(strlen(name) + 2, GFP_KERNEL); | 82 | dn->full_name = kasprintf(GFP_KERNEL, "/%s", name); |
83 | if (!dn->full_name) { | 83 | if (!dn->full_name) { |
84 | kfree(dn); | 84 | kfree(dn); |
85 | return NULL; | 85 | return NULL; |
86 | } | 86 | } |
87 | 87 | ||
88 | sprintf(dn->full_name, "/%s", name); | ||
89 | return dn; | 88 | return dn; |
90 | } | 89 | } |
91 | 90 | ||
@@ -410,15 +409,13 @@ static ssize_t dlpar_cpu_probe(const char *buf, size_t count) | |||
410 | * directory of the device tree. CPUs actually live in the | 409 | * directory of the device tree. CPUs actually live in the |
411 | * cpus directory so we need to fixup the full_name. | 410 | * cpus directory so we need to fixup the full_name. |
412 | */ | 411 | */ |
413 | cpu_name = kzalloc(strlen(dn->full_name) + strlen("/cpus") + 1, | 412 | cpu_name = kasprintf(GFP_KERNEL, "/cpus%s", dn->full_name); |
414 | GFP_KERNEL); | ||
415 | if (!cpu_name) { | 413 | if (!cpu_name) { |
416 | dlpar_free_cc_nodes(dn); | 414 | dlpar_free_cc_nodes(dn); |
417 | rc = -ENOMEM; | 415 | rc = -ENOMEM; |
418 | goto out; | 416 | goto out; |
419 | } | 417 | } |
420 | 418 | ||
421 | sprintf(cpu_name, "/cpus%s", dn->full_name); | ||
422 | kfree(dn->full_name); | 419 | kfree(dn->full_name); |
423 | dn->full_name = cpu_name; | 420 | dn->full_name = cpu_name; |
424 | 421 | ||