On Fri, Jun 07, 2019 at 12:27:50PM -0700, Dan Williams wrote: > diff --git a/lib/memregion.c b/lib/memregion.c > new file mode 100644 > index 000000000000..f6c6a94c7921 > --- /dev/null > +++ b/lib/memregion.c > @@ -0,0 +1,15 @@ > +#include <linux/idr.h> > + > +static DEFINE_IDA(region_ids); > + > +int memregion_alloc(gfp_t gfp) > +{ > + return ida_alloc(®ion_ids, gfp); > +} > +EXPORT_SYMBOL(memregion_alloc); > + > +void memregion_free(int id) > +{ > + ida_free(®ion_ids, id); > +} > +EXPORT_SYMBOL(memregion_free); Does this trivial abstraction have to live in its own file? I'd make memregion_alloc/free static inlines that live in a header file, then all you need do is find a suitable .c file to store memregion_ids in, and export that one symbol instead of two.