1. 30 10月, 2009 1 次提交
  2. 06 2月, 2008 1 次提交
    • J
      [POWERPC] arch/powerpc/sysdev: Add missing of_node_put · b1725c93
      Julia Lawall 提交于
      The functions of_find_compatible_node and of_find_node_by_type both
      call of_node_get on their result.  So any error handling code
      thereafter should call of_node_put(np).  This is taken care of in the
      case where there is a goto out, but not when there is a direct return.
      
      The function irq_alloc_host puts np into the returned structure, which is
      stored in the global variable mpc8xx_pic_host, so the reference count
      should be set for the lifetime of that variable.  The current solution ups
      the reference count again in the argument to irq_alloc_host so that it can
      be decremented on the way out.  This seems a bit unnecessary, and also
      doesn't work in the case where irq_alloc_host fails, because then the
      reference count only goes does by one, whereas it should go down by two.  A
      better solution is to not increment the reference count in the argument to
      irq_alloc_host and only decrement it on the way out in an error case.
      
      The problem was found using the following semantic match.
      (http://www.emn.fr/x-info/coccinelle/)
      
      // <smpl>
      @@
      type T,T1,T2;
      identifier E;
      statement S;
      expression x1,x2,x3;
      int ret;
      @@
      
        T E;
        ...
      * E = \(of_get_parent\|of_find_compatible_node\)(...);
        if (E == NULL) S
        ... when != of_node_put(...,(T1)E,...)
            when != if (E != NULL) { ... of_node_put(...,(T1)E,...); ...}
            when != x1 = (T1)E
            when != E = x3;
            when any
        if (...) {
          ... when != of_node_put(...,(T2)E,...)
              when != if (E != NULL) { ... of_node_put(...,(T2)E,...); ...}
              when != x2 = (T2)E
      (
      *   return;
      |
      *   return ret;
      )
        }
      // </smpl>
      Signed-off-by: NJulia Lawall <julia@diku.dk>
      Cc: Stephen Rothwell <sfr@canb.auug.org.au>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Kumar Gala <galak@gate.crashing.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      b1725c93
  3. 28 1月, 2008 1 次提交
  4. 04 10月, 2007 1 次提交
    • S
      [POWERPC] 8xx: Infrastructure code cleanup. · fb533d0c
      Scott Wood 提交于
      1. Keep a global mpc8xx_immr mapping, rather than constantly
      creating temporary mappings.
      2. Look for new fsl,cpm1 and fsl,cpm1-pic names.
      3. Always reset the CPM when not using the udbg console;
      this is required in case the firmware initialized a device
      that is incompatible with one that the kernel is about to
      use.
      4. Remove some superfluous casts and header includes.
      5. Change a usage of IMAP_ADDR to get_immrbase().
      6. Use phys_addr_t, not uint, for dpram_pbase.
      7. Various sparse-related fixes, such as __iomem annotations.
      8. Remove mpc8xx_show_cpuinfo, which doesn't provide anything
      useful beyond the generic cpuinfo handler.
      9. Move prototypes for 8xx support functions from board files
      to sysdev/commproc.h.
      Signed-off-by: NScott Wood <scottwood@freescale.com>
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      fb533d0c
  5. 13 9月, 2007 2 次提交
  6. 07 2月, 2007 1 次提交