• Paul E. McKenney's avatar
    rcu: Replace the rcu_barrier enum with pointer to call_rcu*() function · 135c8aea
    Paul E. McKenney authored
    The rcu_barrier enum causes several problems:
    
      (1) you have to define the enum somewhere, and there is no
          convenient place,
    
      (2) the difference between TREE_RCU and TREE_PREEMPT_RCU causes
          problems when you need to map from rcu_barrier enum to struct
          rcu_state,
    
      (3) the switch statement are large, and
    
      (4) TINY_RCU really needs a different rcu_barrier() than do the
          treercu implementations.
    
    So replace it with a functionally equivalent but cleaner function
    pointer abstraction.
    Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
    Acked-by: default avatarMathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
    Cc: laijs@cn.fujitsu.com
    Cc: dipankar@in.ibm.com
    Cc: akpm@linux-foundation.org
    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: <12541998232366-git-send-email->
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    135c8aea
rcupdate.c 9.33 KB