+ if (likely((tmp & RCU_GP_CTR_NEST_MASK) == RCU_GP_COUNT)) {
+ reader_barrier();
+ _STORE_SHARED(urcu_active_readers,
+ urcu_active_readers - RCU_GP_COUNT);
+ /* write urcu_active_readers before read futex */
+ reader_barrier();
+ wake_up_gp();
+ } else {
+ _STORE_SHARED(urcu_active_readers,
+ urcu_active_readers - RCU_GP_COUNT);
+ }