diff options
author | Julia Lawall <julia@diku.dk> | 2008-06-09 14:20:42 +0200 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2008-06-16 07:00:35 +0200 |
commit | 8b9dba2ce28f64246198704b23f133bed5429e62 (patch) | |
tree | 459bdb876b0f240b16fb7bf3576acb06653f9df2 /drivers | |
parent | [POWERPC] Add missing of_node_put in pseries/nvram.c (diff) | |
download | linux-8b9dba2ce28f64246198704b23f133bed5429e62.tar.xz linux-8b9dba2ce28f64246198704b23f133bed5429e62.zip |
[POWERPC] Add missing of_node_put in drivers/macintosh/smu.c
of_node_put is needed before discarding a value received from
of_find_node_by_type, eg in error handling code.
The semantic patch that makes the change is as follows:
(http://www.emn.fr/x-info/coccinelle/)
// <smpl>
@@
struct device_node *n;
struct device_node *n1;
struct device_node *n2;
statement S;
identifier f1,f2;
expression E1,E2;
constant C;
@@
n = of_find_node_by_type(...)
...
if (!n) S
... when != of_node_put(n)
when != n1 = f1(n,...)
when != E1 = n
when any
when strict
(
+ of_node_put(n);
return -C;
|
of_node_put(n);
|
n2 = f2(n,...)
|
E2 = n
|
return ...;
)
// </smpl>
Signed-off-by: Julia Lawall <julia@diku.dk>
Acked-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/macintosh/smu.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/macintosh/smu.c b/drivers/macintosh/smu.c index 77ad192962c5..d86d57af282a 100644 --- a/drivers/macintosh/smu.c +++ b/drivers/macintosh/smu.c @@ -483,12 +483,15 @@ int __init smu_init (void) if (smu_cmdbuf_abs == 0) { printk(KERN_ERR "SMU: Command buffer not allocated !\n"); + of_node_put(np); return -EINVAL; } smu = alloc_bootmem(sizeof(struct smu_device)); - if (smu == NULL) + if (smu == NULL) { + of_node_put(np); return -ENOMEM; + } memset(smu, 0, sizeof(*smu)); spin_lock_init(&smu->lock); |