On Thu, Aug 27, 2020 at 06:12:44PM +0200, Peter Zijlstra wrote: > struct kretprobe_instance { > union { > + /* > + * Dodgy as heck, this relies on not clobbering freelist::refs. > + * llist: only clobbers freelist::next. > + * rcu: clobbers both, but only after rp::freelist is gone. > + */ > + struct freelist_node freelist; > struct llist_node llist; > - struct hlist_node hlist; > struct rcu_head rcu; > }; Masami, make sure to make this something like: union { struct freelist_node freelist; struct rcu_head rcu; }; struct llist_node llist; for v4, because after some sleep I'm fairly sure what I wrote above was broken. We'll only use RCU once the freelist is gone, so sharing that storage should still be okay.