07 Aug, 2010

1 commit

  • * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    Revert "net: Make accesses to ->br_port safe for sparse RCU"
    mce: convert to rcu_dereference_index_check()
    net: Make accesses to ->br_port safe for sparse RCU
    vfs: add fs.h to define struct file
    lockdep: Add an in_workqueue_context() lockdep-based test function
    rcu: add __rcu API for later sparse checking
    rcu: add an rcu_dereference_index_check()
    tree/tiny rcu: Add debug RCU head objects
    mm: remove all rcu head initializations
    fs: remove all rcu head initializations, except on_stack initializations
    powerpc: remove all rcu head initializations

    Linus Torvalds
     

21 Jul, 2010

1 commit

  • If a single-threaded process does a file-descriptor operation, and some
    other process accesses that same file descriptor via /proc, the current
    rcu_dereference_check_fdtable() can give a false-positive RCU-lockdep
    splat due to the reference count being increased by the /proc access after
    the reference-count check in fget_light() but before the check in
    rcu_dereference_check_fdtable().

    This commit prevents this false positive by checking for a single-threaded
    process. To avoid #include hell, this commit uses the wrapper for
    thread_group_empty(current) defined by rcu_my_thread_group_empty()
    provided in a separate commit.

    Located-by: Miles Lane
    Located-by: Eric Dumazet
    Signed-off-by: Paul E. McKenney
    Cc: Al Viro
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paul E. McKenney
     

15 Jun, 2010

1 commit

  • The sparse RCU-pointer annotations require definition of the
    underlying type of any pointer passed to rcu_dereference() and friends.
    So fcheck_files() needs "struct file" to be defined, so include fs.h.

    Signed-off-by: Arnd Bergmann
    Signed-off-by: Paul E. McKenney
    Cc: Al Viro

    Paul E. McKenney
     

25 Feb, 2010

2 commits

  • Create an rcu_dereference_check_fdtable() that encapsulates the
    rcu_dereference_check() condition for fcheck_files() use. This
    has the beneficial side-effect of getting rid of a very long
    line.

    Suggested-by: Peter Zijlstra
    Signed-off-by: Paul E. McKenney
    Cc: laijs@cn.fujitsu.com
    Cc: dipankar@in.ibm.com
    Cc: mathieu.desnoyers@polymtl.ca
    Cc: josh@joshtriplett.org
    Cc: dvhltc@us.ibm.com
    Cc: niv@us.ibm.com
    Cc: peterz@infradead.org
    Cc: rostedt@goodmis.org
    Cc: Valdis.Kletnieks@vt.edu
    Cc: dhowells@redhat.com
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Paul E. McKenney
     
  • Add lockdep-ified RCU primitives to alloc_fd(), files_fdtable()
    and fcheck_files().

    Cc: Alexander Viro
    Signed-off-by: Paul E. McKenney
    Cc: laijs@cn.fujitsu.com
    Cc: dipankar@in.ibm.com
    Cc: mathieu.desnoyers@polymtl.ca
    Cc: josh@joshtriplett.org
    Cc: dvhltc@us.ibm.com
    Cc: niv@us.ibm.com
    Cc: peterz@infradead.org
    Cc: rostedt@goodmis.org
    Cc: Valdis.Kletnieks@vt.edu
    Cc: dhowells@redhat.com
    Cc: Alexander Viro
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Paul E. McKenney
     

03 Apr, 2009

1 commit

  • Impact: cleanup

    We want to remove percpu.h from rcupdate.h (for upcoming kmemtrace
    changes), but this is not possible currently without breaking the
    build because fdtable.h has an implicit include file dependency: it
    uses __init does not include init.h.

    This can cause build failures on non-x86 architectures:

    /home/mingo/tip/include/linux/fdtable.h:66: error: expected '=', ',',
    ';', 'asm' or '__attribute__' before 'files_defer_init'
    make[2]: *** [fs/locks.o] Error 1

    We got this header included indirectly via rcupdate.h's percpu.h
    inclusion - but if that is not there the build will break.

    Fix it.

    Cc: Pekka Enberg
    Cc: Eduard - Gabriel Munteanu
    Cc: paulmck@linux.vnet.ibm.com
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     

01 Jan, 2009

1 commit


17 May, 2008

1 commit


02 May, 2008

1 commit