On 05/01/16 19:06, Sven Eckelmann wrote: > > +/** > + * batadv_tt_orig_list_entry_release - release tt orig entry from lists and > + * queue for free after rcu grace period > + * @orig_entry: tt orig entry to be free'd > + */ > +static void > +batadv_tt_orig_list_entry_release(struct batadv_tt_orig_list_entry *orig_entry) > +{ > + batadv_orig_node_free_ref(orig_entry->orig_node); > + kfree_rcu(orig_entry, rcu); > +} I really like this approach big time :) Scheduling the rcu calls one after the other instead of nesting them (or even worse using the _now() function) seems really clean and - of course - not buggy. thanks for these patches Sven! Cheers, -- Antonio Quartulli