On Wed, Nov 23, 2016 at 06:47:03PM +0100, Hannes Frederic Sowa wrote: > Hmm, I think you need to read the sequence counter under rtnl_lock to > have an ordering with the rest of the updates to the RCU trie. Otherwise > you don't know if the fib trie has the correct view regarding to the > incoming notifications as a whole. This is also necessary during restarts.
I spent quite a lot of time thinking about this specific issue, but I couldn't convince myself that the read should be done under RTNL and I'm not sure I understand your reasoning. Can you please elaborate? If, before each notification sent, we call atomic_inc() and then call atomic_read() at the end, then how can we be tricked? Thanks for looking into this!