This project is mirrored from The repository failed to update .
Repository mirroring has been paused due to too many failed attempts, and can be resumed by a project maintainer.
Last successful update .
  1. 30 Dec, 2009 1 commit
    • James Bottomley's avatar
      libsrp: fix compile failure · 75c85a0b
      James Bottomley authored
      commit 45465487 ("kfifo: move struct
      kfifo in place") caused a compile failure in ibmvscsitgt.c because it
      changed a pointer to kfifo in the libsrp.h structure to a direct
      inclusion without including <linux/kfifo.h>.
      The fix is simple, just add the include, but how did this happen? This
      change, introduced at -rc2, hardly looks like a bug fix, and it clearly
      didn't go through linux-next, which would have picked up this compile
      failure (it only occurs on ppc because of the ibm virtual scsi target).
      [ Apparently all of -mm wasn't in linux-next.. ]
      Signed-off-by: default avatarJames Bottomley <>
      Signed-off-by: default avatarLinus Torvalds <>
  2. 22 Dec, 2009 1 commit
    • Stefani Seibold's avatar
      kfifo: move struct kfifo in place · 45465487
      Stefani Seibold authored
      This is a new generic kernel FIFO implementation.
      The current kernel fifo API is not very widely used, because it has to
      many constrains.  Only 17 files in the current 2.6.31-rc5 used it.
      FIFO's are like list's a very basic thing and a kfifo API which handles
      the most use case would save a lot of development time and memory
      I think this are the reasons why kfifo is not in use:
       - The API is to simple, important functions are missing
       - A fifo can be only allocated dynamically
       - There is a requirement of a spinlock whether you need it or not
       - There is no support for data records inside a fifo
      So I decided to extend the kfifo in a more generic way without blowing up
      the API to much.  The new API has the following benefits:
       - Generic usage: For kernel internal use and/or device driver.
       - Provide an API for the most use case.
       - Slim API: The whole API provides 25 functions.
       - Linux style habit.
       - Direct copy_to_user from the fifo and copy_from_user into the fifo.
       - The kfifo itself is an in place member of the using data structure, this save an
         indirection access and does not waste the kernel allocator.
       - Lockless access: if only one reader and one writer is active on the fifo,
         which is the common use case, no additional locking is necessary.
       - Remove spinlock - give the user the freedom of choice what kind of locking to use if
         one is required.
       - Ability to handle records. Three type of records are supported:
         - Variable length records between 0-255 bytes, with a record size
           field of 1 bytes.
         - Variable length records between 0-65535 bytes, with a record size
           field of 2 bytes.
         - Fixed size records, which no record size field.
       - Preserve memory resource.
       - Performance!
       - Easy to use!
      This patch:
      Since most users want to have the kfifo as part of another object,
      reorganize the code to allow including struct kfifo in another data
      structure.  This requires changing the kfifo_alloc and kfifo_init
      prototypes so that we pass an existing kfifo pointer into them.  This
      patch changes the implementation and all existing users.
      [ fix warning]
      Signed-off-by: default avatarStefani Seibold <>
      Acked-by: default avatarGreg Kroah-Hartman <>
      Acked-by: default avatarMauro Carvalho Chehab <>
      Acked-by: default avatarAndi Kleen <>
      Acked-by: default avatarArnd Bergmann <>
      Signed-off-by: default avatarAndrew Morton <>
      Signed-off-by: default avatarLinus Torvalds <>
  3. 12 Oct, 2007 1 commit
  4. 03 Dec, 2006 1 commit