1. 14 2月, 2015 8 次提交
  2. 13 2月, 2015 5 次提交
  3. 14 12月, 2014 1 次提交
  4. 08 11月, 2014 1 次提交
  5. 30 10月, 2014 1 次提交
  6. 09 9月, 2014 1 次提交
  7. 07 8月, 2014 17 次提交
  8. 06 12月, 2012 1 次提交
  9. 30 5月, 2012 1 次提交
  10. 08 3月, 2012 1 次提交
  11. 01 3月, 2012 1 次提交
  12. 01 11月, 2011 1 次提交
    • H
      lib/bitmap.c: quiet sparse noise about address space · b9c321fd
      H Hartley Sweeten 提交于
      __bitmap_parse() and __bitmap_parselist() both take a pointer to a kernel
      buffer as a parameter and then cast it to a pointer to user buffer for use
      in cases when the parameter is_user indicates that the buffer is actually
      located in user space.  This casting, and the casts in the callers,
      results in sparse noise like the following:
      
      	warning: incorrect type in initializer (different address spaces)
      	  expected char const [noderef] <asn:1>*ubuf
      	  got char const *buf
      	warning: cast removes address space of expression
      
      Since these casts are intentional, use __force to quiet the noise.
      Signed-off-by: NH Hartley Sweeten <hsweeten@visionengravers.com>
      Cc: Len Brown <len.brown@intel.com>
      Cc: Huang Ying <ying.huang@intel.com>
      Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b9c321fd
  13. 03 8月, 2011 1 次提交
    • H
      lib, Make gen_pool memory allocator lockless · 7f184275
      Huang Ying 提交于
      This version of the gen_pool memory allocator supports lockless
      operation.
      
      This makes it safe to use in NMI handlers and other special
      unblockable contexts that could otherwise deadlock on locks.  This is
      implemented by using atomic operations and retries on any conflicts.
      The disadvantage is that there may be livelocks in extreme cases.  For
      better scalability, one gen_pool allocator can be used for each CPU.
      
      The lockless operation only works if there is enough memory available.
      If new memory is added to the pool a lock has to be still taken.  So
      any user relying on locklessness has to ensure that sufficient memory
      is preallocated.
      
      The basic atomic operation of this allocator is cmpxchg on long.  On
      architectures that don't have NMI-safe cmpxchg implementation, the
      allocator can NOT be used in NMI handler.  So code uses the allocator
      in NMI handler should depend on CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG.
      Signed-off-by: NHuang Ying <ying.huang@intel.com>
      Reviewed-by: NAndi Kleen <ak@linux.intel.com>
      Reviewed-by: NMathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      7f184275