24 Mar, 2013

1 commit

  • This reverts commit 11b80f459adaf91a712f95e7734a17655a36bf30.

    Bcache needs rw semaphores for cache coherency in writeback mode -
    writes have to take a read lock on a per cache device rw sem, and
    release it when the bio completes.

    But since this is for bios it's naturally not in the context of the
    process that originally took the lock.

    Signed-off-by: Kent Overstreet
    CC: Christoph Hellwig
    CC: David Howells

    Kent Overstreet
     

17 Jan, 2013

1 commit

  • Commit 1b963c81b145 ("lockdep, rwsem: provide down_write_nest_lock()")
    contains a bug in a codepath when CONFIG_DEBUG_LOCK_ALLOC is disabled,
    which causes down_read() to be called instead of down_write() by mistake
    on such configurations. Fix that.

    Reported-and-tested-by: Andrew Clayton
    Reported-and-tested-by: Zlatko Calusic
    Signed-off-by: Jiri Kosina
    Reviewed-by: Rik van Riel
    Signed-off-by: Linus Torvalds

    Jiri Kosina
     

12 Jan, 2013

1 commit

  • down_write_nest_lock() provides a means to annotate locking scenario
    where an outer lock is guaranteed to serialize the order nested locks
    are being acquired.

    This is analogoue to already existing mutex_lock_nest_lock() and
    spin_lock_nest_lock().

    Signed-off-by: Jiri Kosina
    Cc: Rik van Riel
    Cc: Ingo Molnar
    Cc: Peter Zijlstra
    Cc: Mel Gorman
    Tested-by: Sedat Dilek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiri Kosina
     

29 Mar, 2012

1 commit


13 Sep, 2011

1 commit

  • There is no reason to allow the lock protecting rwsems (the
    ownerless variant) to be preemptible on -rt. Convert it to raw.

    In mainline this change documents the low level nature of
    the lock - otherwise there's no functional difference. Lockdep
    and Sparse checking will work as usual.

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar

    Thomas Gleixner
     

27 Jul, 2011

1 commit

  • This allows us to move duplicated code in
    (atomic_inc_not_zero() for now) to

    Signed-off-by: Arun Sharma
    Reviewed-by: Eric Dumazet
    Cc: Ingo Molnar
    Cc: David Miller
    Cc: Eric Dumazet
    Acked-by: Mike Frysinger
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arun Sharma
     

21 Jul, 2011

1 commit


27 Jan, 2011

6 commits

  • Peter Zijlstra pointed out, that the only user of asmregparm (x86) is
    compiling the kernel already with -mregparm=3. So the annotation of
    the rwsem functions is redundant. Remove it.

    Signed-off-by: Thomas Gleixner
    Cc: Peter Zijlstra
    Cc: David Howells
    Cc: Benjamin Herrenschmidt
    Cc: Matt Turner
    Cc: Tony Luck
    Cc: Heiko Carstens
    Cc: Paul Mundt
    Cc: David Miller
    Cc: Chris Zankel
    LKML-Reference:
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     
  • All architecture specific rwsem headers carry the same function
    prototypes. Just x86 adds asmregparm, which is an empty define on all
    other architectures. S390 has a stale rwsem_downgrade_write()
    prototype.

    Remove the duplicates and add the prototypes to linux/rwsem.h

    Signed-off-by: Thomas Gleixner
    Cc: Peter Zijlstra
    Cc: David Howells
    Cc: Benjamin Herrenschmidt
    Cc: Richard Henderson
    Acked-by: Tony Luck
    Acked-by: Heiko Carstens
    Cc: Paul Mundt
    Acked-by: David Miller
    Cc: Chris Zankel
    LKML-Reference:
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     
  • Instead of having the same implementation in each architecture, move
    it to linux/rwsem.h and remove the duplicates. It's unlikely that an
    arch will ever implement something different, but we can deal with
    that when it happens.

    Signed-off-by: Thomas Gleixner
    Cc: Peter Zijlstra
    Cc: David Howells
    Cc: Benjamin Herrenschmidt
    Cc: Matt Turner
    Acked-by: Tony Luck
    Acked-by: Heiko Carstens
    Cc: Paul Mundt
    Acked-by: David Miller
    Cc: Chris Zankel
    LKML-Reference:
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     
  • The rwsem initializers and related macros and functions are mostly the
    same. Some of them lack the lockdep initializer, but having it in
    place does not matter for architectures which do not support lockdep.

    powerpc, sparc, x86: No functional change

    sh, s390: Removes the duplicate init_rwsem (inline and #define)

    alpha, ia64, xtensa: Use the lockdep capable init function in
    lib/rwsem.c which is just uninlining the init
    function for the LOCKDEP=n case

    Signed-off-by: Thomas Gleixner
    Cc: Peter Zijlstra
    Cc: David Howells
    Cc: Benjamin Herrenschmidt
    Cc: Matt Turner
    Acked-by: Tony Luck
    Acked-by: Heiko Carstens
    Cc: Paul Mundt
    Acked-by: David Miller
    Cc: Chris Zankel
    LKML-Reference:

    Thomas Gleixner
     
  • The difference between these declarations is the data type of the
    count member and the lack of lockdep in some architectures/

    long is equivivalent to signed long and the #ifdef guarded dep_map
    member does not hurt anyone.

    Signed-off-by: Thomas Gleixner
    Cc: Peter Zijlstra
    Cc: David Howells
    Cc: Benjamin Herrenschmidt
    Cc: Matt Turner
    Acked-by: Tony Luck
    Acked-by: Heiko Carstens
    Cc: Paul Mundt
    Acked-by: David Miller
    Cc: Chris Zankel
    LKML-Reference:
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     
  • All rwsem implementations include the same headers. Include them from
    include/linux/rwsem.h

    Signed-off-by: Thomas Gleixner
    Cc: Peter Zijlstra
    Cc: David Howells
    Cc: Benjamin Herrenschmidt
    Cc: Matt Turner
    Acked-by: Tony Luck
    Acked-by: Heiko Carstens
    Cc: Paul Mundt
    Acked-by: David Miller
    Cc: Chris Zankel
    LKML-Reference:

    Thomas Gleixner
     

30 Apr, 2008

1 commit


11 Jul, 2006

1 commit


04 Jul, 2006

2 commits


26 Apr, 2006

1 commit


17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds