Re: [PATCH] pinctrl: generic-mux: free maps on pinctrl_generic_to_map() failure

Frank Li <[email protected]>
Newsgroups org.kernel.vger.linux-gpio,org.kernel.vger.linux-kernel
Message-ID <amOzF3h0ujw8x5ST@lizhi-Precision-Tower-5810>
On Thu, Jul 23, 2026 at 12:00:11PM +0530, [email protected] wrote:
> From: Surendra Singh Chouhan <[email protected]>
>
> mux_pinmux_dt_node_to_map() calls pinctrl_generic_to_map() to parse DT
> configuration and allocate pinctrl maps.
>
> If pinctrl_generic_to_map() returns an error, *maps may contain partial
> map entries allocated by pinctrl_utils_reserve_map(). Returning the error
> directly without calling pinctrl_utils_free_map() leaks the allocated
> mapping memory.

Fix pinctrl_generic_to_map(), which should cleanup memory before return
failure.

Frank

>
> Fix this by calling pinctrl_utils_free_map() when pinctrl_generic_to_map()
> fails.
>
> Fixes: 34acc5a8adfb ("pinctrl: add generic board-level pinctrl driver using mux framework")
> Signed-off-by: Surendra Singh Chouhan <[email protected]>
> ---
>  drivers/pinctrl/pinctrl-generic-mux.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/pinctrl/pinctrl-generic-mux.c b/drivers/pinctrl/pinctrl-generic-mux.c
> index da5a5ec01583..927c7aa616f5 100644
> --- a/drivers/pinctrl/pinctrl-generic-mux.c
> +++ b/drivers/pinctrl/pinctrl-generic-mux.c
> @@ -58,8 +58,10 @@ mux_pinmux_dt_node_to_map(struct pinctrl_dev *pctldev,
>  				     num_maps, &num_reserved_maps, group_names,
>  				     0, &np_config->name, NULL, 0);
>
> -	if (ret)
> +	if (ret) {
> +		pinctrl_utils_free_map(pctldev, *maps, *num_maps);
>  		return ret;
> +	}
>
>  	ret = pinmux_generic_add_function(pctldev, np_config->name, group_names,
>  					  1, function);
> --
> 2.55.0
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.