On Thu, Oct 07, 2021 at 12:51:27PM +0300, Andy Shevchenko wrote: > --- a/lib/radix-tree.c > +++ b/lib/radix-tree.c > @@ -12,19 +12,21 @@ > #include <linux/bitmap.h> > #include <linux/bitops.h> > #include <linux/bug.h> > +#include <linux/container_of.h> > #include <linux/cpu.h> > #include <linux/errno.h> > #include <linux/export.h> > #include <linux/idr.h> > #include <linux/init.h> > -#include <linux/kernel.h> > #include <linux/kmemleak.h> > +#include <linux/math.h> > #include <linux/percpu.h> > #include <linux/preempt.h> /* in_interrupt() */ > #include <linux/radix-tree.h> > #include <linux/rcupdate.h> > #include <linux/slab.h> > #include <linux/string.h> > +#include <linux/types.h> > #include <linux/xarray.h> > > /* > @@ -285,6 +287,8 @@ radix_tree_node_alloc(gfp_t gfp_mask, struct radix_tree_node *parent, > return ret; > } > > +extern void radix_tree_node_rcu_free(struct rcu_head *head); .c files should not need an extern, this belongs in a .h file somewhere, or something really went wrong here... thanks, greg k-h