Hi, after reading Marek's and Sven's comments to my question about the vis code, and looking at the code a bit I came to the following conclusion about the first part of the cleanup, the finishing of the RCU conversion of the vis code:
It should be possible to get rid of the vis_hash_lock altogether, as the hash table has spinlocks for the hash lists itself; overall hash consistency might be a issue though - I would propose adding a hash_update function that updates a hash entry without deleting and re-adding the hlist node.
I think I found a bug in the hash_add function though. First there is a RCU-locked loop that checks if a entry does already exist, but the spinlock is taken after the rcu_read_unlock() - thus allowing the same entry to be appended twice if two threads try to add it at the same time.
If you want to contact me about this via IRC, I'm now idling in #batman - my nickname there is neoraider.
Thanks, Matthias