Re: [PATCH 01/42] of: reserved_mem: Introduce devres-managed initialization functions
Rob Herring <[email protected]> Thu, 16 Jul 2026 15:00:48 -0500
| Newsgroups | org.ozlabs.lists.openbmc,dev.linux.lists.imx,dev.linux.lists.linux-staging,dev.linux.lists.linux-sunxi,org.freedesktop.lists.dri-devel,org.infradead.lists.linux-mediatek,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel,org.kernel.vger.linux-media,org.kernel.vger.linux-mips,org.kernel.vger.linux-mmc,org.kernel.vger.linux-remoteproc,org.kernel.vger.linux-sound,org.kernel.vger.linux-tegra,org.ozlabs.lists.linux-aspeed,org.ozlabs.lists.linuxppc-dev |
|---|---|
| Message-ID | <[email protected]> |
On Sat, Jul 04, 2026 at 01:08:14AM +0530, Mukesh Ojha wrote: > From: Konrad Dybcio <[email protected]> > > Introduce devres-based helpers for of_reserved_mem_device_init(_by_idx) > to help fight dangling references and ever so slightly reduce the > number of boilerplate deinitialization calls. > > Signed-off-by: Konrad Dybcio <[email protected]> > Signed-off-by: Mukesh Ojha <[email protected]> > --- > drivers/of/of_reserved_mem.c | 41 +++++++++++++++++++++++++++++++++ > include/linux/of_reserved_mem.h | 25 ++++++++++++++++++++ > 2 files changed, 66 insertions(+) > > diff --git a/drivers/of/of_reserved_mem.c b/drivers/of/of_reserved_mem.c > index 82222bd45ac6..b35541e9fbe8 100644 > --- a/drivers/of/of_reserved_mem.c > +++ b/drivers/of/of_reserved_mem.c > @@ -787,6 +787,47 @@ void of_reserved_mem_device_release(struct device *dev) > } > EXPORT_SYMBOL_GPL(of_reserved_mem_device_release); > > +static void devm_of_reserved_mem_device_release(struct device *dev, void *res) > +{ > + of_reserved_mem_device_release(*(struct device **)res); > +} > + > +/** > + * devm_of_reserved_mem_device_init_by_idx() - Resource managed of_reserved_mem_device_init_by_idx() > + * @dev: Pointer to the device to configure > + * @np: Pointer to the device node with 'memory-region' property > + * @idx: Index of selected region > + * > + * This is a resource managed version of of_reserved_mem_device_init_by_idx(). > + * The reserved memory region will be released automatically when the device > + * is unbound. > + * > + * Returns: Negative errno on failure or zero on success. > + */ > +int devm_of_reserved_mem_device_init_by_idx(struct device *dev, > + struct device_node *np, int idx) It looks to me like the only 2? users of this could be converted to devm_of_reserved_mem_device_init() instead. The mmc one obviously can. The imx one depends if np is dev->of_node. I'm not a fan of APIs with only a few users. Rob