devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
  • * [PATCH 7/7] arch/powerpc/platforms/cell: Add of_node_put to avoid memory leak
           [not found] <1283075566-27441-1-git-send-email-julia@diku.dk>
           [not found] ` <1283075566-27441-1-git-send-email-julia-dAYI7NvHqcQ@public.gmane.org>
    @ 2010-08-29  9:52 ` Julia Lawall
      2010-09-08 19:46   ` Grant Likely
      1 sibling, 1 reply; 18+ messages in thread
    From: Julia Lawall @ 2010-08-29  9:52 UTC (permalink / raw)
      To: Arnd Bergmann
      Cc: kernel-janitors, Benjamin Herrenschmidt, Paul Mackerras,
    	Grant Likely, linuxppc-dev, cbe-oss-dev, linux-kernel,
    	devicetree-discuss
    
    Add calls to of_node_put in the error handling code following calls to
    of_find_node_by_path and of_find_node_by_phandle.
    
    The semantic match that finds this problem is as follows:
    (http://coccinelle.lip6.fr/)
    
    // <smpl>
    @r exists@
    local idexpression x;
    expression E,E1;
    statement S;
    @@
    
    *x = 
    (of_find_node_by_path
    |of_find_node_by_name
    |of_find_node_by_phandle
    |of_get_parent
    |of_get_next_parent
    |of_get_next_child
    |of_find_compatible_node
    |of_match_node
    )(...);
    ...
    if (x == NULL) S
    <... when != x = E
    *if (...) {
      ... when != of_node_put(x)
          when != if (...) { ... of_node_put(x); ... }
    (
      return <+...x...+>;
    |
    *  return ...;
    )
    }
    ...>
    of_node_put(x);
    // </smpl>
    
    Signed-off-by: Julia Lawall <julia@diku.dk>
    
    ---
     arch/powerpc/platforms/cell/ras.c        |    4 +++-
     arch/powerpc/platforms/cell/spider-pic.c |    4 +++-
     2 files changed, 6 insertions(+), 2 deletions(-)
    
    diff --git a/arch/powerpc/platforms/cell/ras.c b/arch/powerpc/platforms/cell/ras.c
    index 1d3c4ef..5ec1e47 100644
    --- a/arch/powerpc/platforms/cell/ras.c
    +++ b/arch/powerpc/platforms/cell/ras.c
    @@ -173,8 +173,10 @@ static int __init cbe_ptcal_enable(void)
     		return -ENODEV;
     
     	size = of_get_property(np, "ibm,cbe-ptcal-size", NULL);
    -	if (!size)
    +	if (!size) {
    +		of_node_put(np);
     		return -ENODEV;
    +	}
     
     	pr_debug("%s: enabling PTCAL, size = 0x%x\n", __func__, *size);
     	order = get_order(*size);
    diff --git a/arch/powerpc/platforms/cell/spider-pic.c b/arch/powerpc/platforms/cell/spider-pic.c
    index 5876e88..3f2e557 100644
    --- a/arch/powerpc/platforms/cell/spider-pic.c
    +++ b/arch/powerpc/platforms/cell/spider-pic.c
    @@ -258,8 +258,10 @@ static unsigned int __init spider_find_cascade_and_node(struct spider_pic *pic)
     		return NO_IRQ;
     	imap += intsize + 1;
     	tmp = of_get_property(iic, "#interrupt-cells", NULL);
    -	if (tmp == NULL)
    +	if (tmp == NULL) {
    +		of_node_put(iic);
     		return NO_IRQ;
    +	}
     	intsize = *tmp;
     	/* Assume unit is last entry of interrupt specifier */
     	unit = imap[intsize - 1];
    
    ^ permalink raw reply related	[flat|nested] 18+ messages in thread

  • end of thread, other threads:[~2010-09-08 19:51 UTC | newest]
    
    Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
    -- links below jump to the message on this page --
         [not found] <1283075566-27441-1-git-send-email-julia@diku.dk>
         [not found] ` <1283075566-27441-1-git-send-email-julia-dAYI7NvHqcQ@public.gmane.org>
    2010-08-29  9:52   ` [PATCH 1/7] drivers/macintosh/via-pmu-led.c: Add of_node_put to avoid memory leak Julia Lawall
    2010-08-31 15:49     ` walter harms
         [not found]       ` <4C7D247F.4060500-fPG8STNUNVg@public.gmane.org>
    2010-08-31 16:08         ` Julia Lawall
         [not found]           ` <Pine.LNX.4.64.1008311807470.2668-QfmoRoYWmW9knbxzx/v8hQ@public.gmane.org>
    2010-08-31 16:13             ` Grant Likely
    2010-08-31 16:16             ` Vasiliy Kulikov
    2010-08-31 16:33               ` Grant Likely
    2010-09-01 15:03                 ` walter harms
    2010-08-29  9:52   ` [PATCH 3/7] drivers/mtd/nand/mpc5121_nfc.c: " Julia Lawall
         [not found]     ` <1283075566-27441-4-git-send-email-julia-dAYI7NvHqcQ@public.gmane.org>
    2010-08-29 15:47       ` Wolfram Sang
    2010-08-30 13:13     ` Artem Bityutskiy
    2010-08-29  9:52   ` [PATCH 4/7] arch/powerpc/platforms/powermac/pfunc_core.c: " Julia Lawall
    2010-08-29  9:52   ` [PATCH 5/7] arch/powerpc/sysdev/qe_lib/qe.c: " Julia Lawall
    2010-08-30 20:39     ` Timur Tabi
         [not found]     ` <1283075566-27441-6-git-send-email-julia-dAYI7NvHqcQ@public.gmane.org>
    2010-08-31 21:41       ` Kumar Gala
    2010-08-29  9:52   ` [PATCH 6/7] arch/powerpc/platforms/maple/setup.c: " Julia Lawall
         [not found]     ` <1283075566-27441-7-git-send-email-julia-dAYI7NvHqcQ@public.gmane.org>
    2010-09-08 19:51       ` Grant Likely
    2010-08-29  9:52 ` [PATCH 7/7] arch/powerpc/platforms/cell: " Julia Lawall
    2010-09-08 19:46   ` Grant Likely
    

    This is a public inbox, see mirroring instructions
    for how to clone and mirror all data and code used for this inbox;
    as well as URLs for NNTP newsgroup(s).