From: Tom Herbert <t...@herbertland.com> Date: Tue, 1 Dec 2015 15:11:09 -0800
> + lock = rht_bucket_lock(tbl, hash); > + > + spin_lock_bh(lock); > + > + pprev = &tbl->buckets[hash]; > + rht_for_each(he, tbl, hash) { > + if (he != obj_old) { > + pprev = &he->next; > + continue; > + } > + > + rcu_assign_pointer(obj_new->next, obj_old->next); > + rcu_assign_pointer(*pprev, obj_new); > + err = 0; > + break; Are you sure this works fine in the presence of both parallel readers and table expansion passes? -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html