On Sun, 29 Aug 2004 16:50:31 +1000
Herbert Xu [off-list ref] wrote:
quoted
Secondly, until neigh_create() takes the tbl lock, it is not in
the hash tables and therefore neigh_ifdown() could not see it.
That part I agree with :) That's in fact what this race is about:
neigh_ifdown does not guarantee that the hash table will be without
references to idev.
I think we can clear this by putting neigh_parms_release() into an
RCU handler. It can't be in in_dev_rcu_put.
I also now believe that these sorts of races you are mentioning percolate
out into ip_mc_destroy_dev().