1. 31 Aug, 2019 1 commit
    • Linus Torvalds's avatar
      Partially revert "kfifo: fix kfifo_alloc() and kfifo_init()" · ab9bb631
      Linus Torvalds authored
      Commit dfe2a77f ("kfifo: fix kfifo_alloc() and kfifo_init()") made
      the kfifo code round the number of elements up.  That was good for
      __kfifo_alloc(), but it's actually wrong for __kfifo_init().
      
      The difference? __kfifo_alloc() will allocate the rounded-up number of
      elements, but __kfifo_init() uses an allocation done by the caller.  We
      can't just say "use more elements than the caller allocated", and have
      to round down.
      
      The good news? All the normal cases will be using power-of-two arrays
      anyway, and most users of kfifo's don't use kfifo_init() at all, but one
      of the helper macros to declare a KFIFO that enforce the proper
      power-of-two behavior.  But it looks like at least ibmvscsis might be
      affected.
      
      The bad news? Will Deacon refers to an old thread and points points out
      that the memory ordering in kfifo's is questionable.  See
      
        https://lore.kernel.org/lkml/20181211034032.32338-1-yuleixzhang@tencent.com/
      
      for more.
      
      Fixes: dfe2a77f ("kfifo: fix kfifo_alloc() and kfifo_init()")
      Reported-by: default avatarlaokz <laokz@foxmail.com>
      Cc: Stefani Seibold <stefani@seibold.net>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Dan Carpenter <dan.carpenter@oracle.com>
      Cc: Greg KH <greg@kroah.com>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Will Deacon <will@kernel.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ab9bb631
  2. 30 Aug, 2019 18 commits
  3. 29 Aug, 2019 8 commits
  4. 28 Aug, 2019 7 commits
  5. 27 Aug, 2019 6 commits