In 9dbbfb0ab6680c6a85609041011484e6658e7d3c function tipc_sk_reinithad additional logic added to loop in the event that functionrhashtable_walk_next() returned -EAGAIN. No worries.

However, if rhashtable_walk_start returns -EAGAIN, it does "continue",and therefore skips the call to rhashtable_walk_stop(). That hasthe effect of calling rcu_read_lock() without its paired call torcu_read_unlock(). Since rcu_read_lock() may be nested, the problemmay not be apparent for a while, especially since resize events maybe rare. But the comments to rhashtable_walk_start() state:

* ...Note that we take the RCU lock in all * cases including when we return an error. So you must always call * rhashtable_walk_stop to clean up.

This patch replaces the continue with a goto and label to ensure amatching call to rhashtable_walk_stop().