Re: [PATCH 01/42] of: reserved_mem: Introduce devres-managed initialization functions

From: Rob Herring

Date: Thu Jul 16 2026 - 16:02:38 EST


On Sat, Jul 04, 2026 at 01:08:14AM +0530, Mukesh Ojha wrote:
> From: Konrad Dybcio <konrad.dybcio@xxxxxxxxxxxxxxxx>
>
> 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 <konrad.dybcio@xxxxxxxxxxxxxxxx>
> Signed-off-by: Mukesh Ojha <mukesh.ojha@xxxxxxxxxxxxxxxx>
> ---
> 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