1. 08 Dec, 2006 1 commit
    • David Howells's avatar
      [PATCH] LOG2: Implement a general integer log2 facility in the kernel · f0d1b0b3
      David Howells authored
      
      
      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: default avatarDavid 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: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      f0d1b0b3
  2. 06 Dec, 2006 1 commit
    • Franck Bui-Huu's avatar
      [MIPS] Compile __do_IRQ() when really needed · e77c232c
      Franck Bui-Huu authored
      
      
      __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: default avatarFranck Bui-Huu <fbuihuu@gmail.com>
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      e77c232c
  3. 04 Dec, 2006 3 commits
  4. 29 Nov, 2006 3 commits
  5. 02 Nov, 2006 3 commits
  6. 30 Oct, 2006 2 commits
  7. 09 Oct, 2006 1 commit
  8. 07 Oct, 2006 1 commit
  9. 04 Oct, 2006 1 commit
  10. 03 Oct, 2006 2 commits
  11. 01 Oct, 2006 2 commits
  12. 27 Sep, 2006 5 commits
  13. 13 Jul, 2006 4 commits
  14. 29 Jun, 2006 8 commits
  15. 19 Jun, 2006 3 commits