1. 09 12月, 2006 1 次提交
    • D
      [PATCH] LOG2: Implement a general integer log2 facility in the kernel · f0d1b0b3
      David Howells 提交于
      This facility provides three entry points:
      
      	ilog2()		Log base 2 of unsigned long
      	ilog2_u32()	Log base 2 of u32
      	ilog2_u64()	Log base 2 of u64
      
      These facilities can either be used inside functions on dynamic data:
      
      	int do_something(long q)
      	{
      		...;
      		y = ilog2(x)
      		...;
      	}
      
      Or can be used to statically initialise global variables with constant values:
      
      	unsigned n = ilog2(27);
      
      When performing static initialisation, the compiler will report "error:
      initializer element is not constant" if asked to take a log of zero or of
      something not reducible to a constant.  They treat negative numbers as
      unsigned.
      
      When not dealing with a constant, they fall back to using fls() which permits
      them to use arch-specific log calculation instructions - such as BSR on
      x86/x86_64 or SCAN on FRV - if available.
      
      [akpm@osdl.org: MMC fix]
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Wojtek Kaniewski <wojtekka@toxygen.net>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      f0d1b0b3
  2. 07 12月, 2006 1 次提交
    • F
      [MIPS] Compile __do_IRQ() when really needed · e77c232c
      Franck Bui-Huu 提交于
      __do_IRQ() is needed only by irq handlers that can't use
      default handlers defined in kernel/irq/chip.c.
      
      For others platforms there's no need to compile this function
      since it won't be used. For those platforms this patch defines
      GENERIC_HARDIRQS_NO__DO_IRQ symbol which is used exactly for
      this purpose.
      
      Futhermore for platforms which do not use __do_IRQ(), end()
      method which is part of the 'irq_chip' structure is not used.
      This patch simply removes this method in this case.
      Signed-off-by: NFranck Bui-Huu <fbuihuu@gmail.com>
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      e77c232c
  3. 05 12月, 2006 3 次提交
  4. 30 11月, 2006 3 次提交
  5. 03 11月, 2006 3 次提交
  6. 31 10月, 2006 2 次提交
  7. 10 10月, 2006 1 次提交
  8. 08 10月, 2006 1 次提交
  9. 05 10月, 2006 1 次提交
  10. 04 10月, 2006 2 次提交
  11. 02 10月, 2006 2 次提交
  12. 27 9月, 2006 5 次提交
  13. 14 7月, 2006 4 次提交
  14. 30 6月, 2006 8 次提交
  15. 20 6月, 2006 3 次提交