Hello! This series provides SRCU updates, perhaps most notably the addition of a srcu_down_read() and srcu_up_read() that act like srcu_read_lock() and srcu_read_unlock(), but which permit the srcu_up_read() to be invoked from a different context than the srcu_down_read(). 1. Release early_srcu resources when no longer in use, courtesy of Zqiang. 2. Delegate work to the boot cpu if using SRCU_SIZE_SMALL, courtesy of Pingfan Liu. 3. Fix a misspelling in comment, courtesy of Pingfan Liu. 4. Fix the comparision in srcu_invl_snp_seq(), courtesy of Pingfan Liu. 5. Add srcu_down_read() and srcu_up_read(). 6. Add test code for semaphore-like SRCU readers. 7. Remove needless rcu_seq_done() check while holding read lock, courtesy of Pingfan Liu. 8. Yet more detail for srcu_readers_active_idx_check() comments. 9. Update comment after the index flip. Thanx, Paul ------------------------------------------------------------------------ b/include/linux/srcu.h | 45 ++++++++++++++++++++++ b/include/linux/srcutree.h | 2 - b/kernel/rcu/srcutree.c | 9 ++-- b/kernel/rcu/update.c | 1 kernel/rcu/srcutree.c | 89 ++++++++++++++++++++++++++++++++------------- kernel/rcu/update.c | 3 + 6 files changed, 119 insertions(+), 30 deletions(-)