Given rcu_lock_acquire() in srcu_read_lock(), iA = srcu_read_lock(foo); iB = srcu_read_lock(foo); // not bar ... srcu_read_unlock(foo, iB); srcu_read_unlock(foo, iA); can the call sequence above trigger warning with CONFIG_DEBUG_LOCK_ALLOC enabled? Does it make sense to add srcu_lock_acquire() in line with rwsem_acquire_read() if warning is expected but not triggered? Thanks Hillf static inline void rcu_lock_acquire(struct lockdep_map *map) { lock_acquire(map, 0, 0, 2, 0, NULL, _THIS_IP_); } static inline void srcu_lock_acquire(struct lockdep_map *map) { lock_acquire(map, 0, 0, 1, 0, NULL, _THIS_IP_); }