Re: [PATCH] firmware: arm_scmi: Use common error handling code in __scmi_device_create()

Cristian Marussi <[email protected]>
Newsgroups org.kernel.vger.arm-scmi,org.infradead.lists.linux-arm-kernel,org.kernel.vger.kernel-janitors,org.kernel.vger.linux-kernel
Message-ID <aiqZiv995sbvcBjq@pluto>
On Thu, Jun 11, 2026 at 10:34:52AM +0200, Markus Elfring wrote:
> From: Markus Elfring <[email protected]>
> Date: Thu, 11 Jun 2026 10:27:45 +0200
> 
> Use an additional label so that a bit of exception handling can be better
> reused at the end of an if branch.
> 

Hi,

> This issue was detected by using the Coccinelle software.
> 
> Signed-off-by: Markus Elfring <[email protected]>
> ---
>  drivers/firmware/arm_scmi/bus.c | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/firmware/arm_scmi/bus.c b/drivers/firmware/arm_scmi/bus.c
> index 793be9eabaed..8c20ed1a8243 100644
> --- a/drivers/firmware/arm_scmi/bus.c
> +++ b/drivers/firmware/arm_scmi/bus.c
> @@ -450,14 +450,13 @@ __scmi_device_create(struct device_node *np, struct device *parent,
>  		return NULL;
>  
>  	scmi_dev->name = kstrdup_const(name ?: "unknown", GFP_KERNEL);
> -	if (!scmi_dev->name) {
> -		kfree(scmi_dev);
> -		return NULL;
> -	}
> +	if (!scmi_dev->name)
> +		goto free_scmi_dev;
>  
>  	id = ida_alloc_min(&scmi_bus_id, 1, GFP_KERNEL);
>  	if (id < 0) {
>  		kfree_const(scmi_dev->name);
> +free_scmi_dev:
>  		kfree(scmi_dev);

I can understand the aim, but jumping in the middle of another block
just to reuse the cleanup statement is far less readable (and ugly)

Cleanup handlers probably a better solution here...but I have NOT looked
at all the sorrounding code here recently...so I maybe wrong and keeping
the current code could be even bette.

Thanks,
Cristian
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.