Ira Weiny wrote: > On Fri, Jul 08, 2022 at 03:53:50PM +0100, Matthew Wilcox wrote: > > On Tue, Jul 05, 2022 at 04:21:57PM -0700, ira.weiny@xxxxxxxxx wrote: > > > The main issue I see with this is defining devm_xa_init() in device.h. > > > This makes sense because a device is required to use the call. However, > > > I'm worried about if users will find the call there vs including it in > > > xarray.h? > > > > Honestly, I don't want users to find it. This only makes sense if you're > > already bought in to the devm cult. I worry people will think that > > they don't need to do anything else; that everything will be magically > > freed for them, and we'll leak the objects pointed to from the xarray. > > I don't even like having xa_destroy() in the API, because of exactly this. > > > > Fair enough. Are you ok with the concept though? I came here to same the same thing as Matthew. devm_xa_init() does not lessen review burden like other devm helpers. A reviewer still needs to go verfy that the patch that uses this makes sure to free all objects in the xarray before it gets destroyed. If there still needs to be an open-coded "empty the xarray" step, then that can just do the xa_destroy() there. So for me, no, the concept of this just not quite jive.