OSDN Git Service

Merge branches 'doc.2017.04.12a', 'fixes.2017.04.19a' and 'srcu.2017.04.21a' into...
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Fri, 21 Apr 2017 13:00:13 +0000 (06:00 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Fri, 21 Apr 2017 13:00:13 +0000 (06:00 -0700)
doc.2017.04.12a: Documentation updates
fixes.2017.04.19a: Miscellaneous fixes
srcu.2017.04.21a: Parallelize SRCU callback handling

1  2  3 
Documentation/RCU/Design/Data-Structures/Data-Structures.html
Documentation/RCU/whatisRCU.txt
init/Kconfig
kernel/rcu/tree.c
kernel/rcu/tree_plugin.h

@@@@ -589,21 -587,20 -587,20 +589,21 @@@@ It is extremely simple
                write_unlock(&rcu_gp_mutex);
        }
   
 --[You can ignore rcu_assign_pointer() and rcu_dereference() without
 --missing much.  But here they are anyway.  And whatever you do, don't
 --forget about them when submitting patches making use of RCU!]
 - 
 -      #define rcu_assign_pointer(p, v)        ({ \
 -                                                      smp_wmb(); \
 -                                                      (p) = (v); \
 -                                              })
 - 
 -      #define rcu_dereference(p)     ({ \
 -                                      typeof(p) _________p1 = p; \
 -                                      smp_read_barrier_depends(); \
 -                                      (_________p1); \
 -                                      })
 ++[You can ignore rcu_assign_pointer() and rcu_dereference() without missing
 ++much.  But here are simplified versions anyway.  And whatever you do,
 ++don't forget about them when submitting patches making use of RCU!]
 + 
  -     #define rcu_assign_pointer(p, v)        ({ \
  -                                                     smp_wmb(); \
  -                                                     (p) = (v); \
  -                                             })
 ++     #define rcu_assign_pointer(p, v) \
 ++     ({ \
 ++             smp_store_release(&(p), (v)); \
 ++     })
 + 
  -     #define rcu_dereference(p)     ({ \
  -                                     typeof(p) _________p1 = p; \
  -                                     smp_read_barrier_depends(); \
  -                                     (_________p1); \
  -                                     })
 ++     #define rcu_dereference(p) \
 ++     ({ \
 ++             typeof(p) _________p1 = p; \
 ++             smp_read_barrier_depends(); \
 ++             (_________p1); \
 ++     })
   
   
   The rcu_read_lock() and rcu_read_unlock() primitive read-acquire
diff --cc init/Kconfig
Simple merge
Simple merge
Simple merge