From: "Christophe Leroy (CS GROUP)" <chleroy@kernel.org>
To: Markus Elfring <Markus.Elfring@web.de>,
linux-arm-kernel@lists.infradead.org,
linuxppc-dev@lists.ozlabs.org, Roy Pledge <Roy.Pledge@nxp.com>
Cc: LKML <linux-kernel@vger.kernel.org>, kernel-janitors@vger.kernel.org
Subject: Re: [PATCH] soc: fsl: dpio: Use common error handling code in two functions
Date: Sat, 4 Jul 2026 11:19:00 +0200 [thread overview]
Message-ID: <d95d2f4c-f3cf-44eb-b61b-79ba7891674d@kernel.org> (raw)
In-Reply-To: <690827f2-e746-4378-bb7c-9948cd69dc15@web.de>
Le 11/06/2026 à 12:02, Markus Elfring a écrit :
> From: Markus Elfring <elfring@users.sourceforge.net>
> Date: Thu, 11 Jun 2026 11:56:18 +0200
>
> Use additional labels so that a bit of exception handling can be better
> reused at the end of two function implementations.
>
> This issue was detected by using the Coccinelle software.
I think it would be better to declare obj and ret as automatic free instead:
struct dpaa2_io __free(kfree) *obj = kmalloc_obj(*obj);
>
> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
> ---
> drivers/soc/fsl/dpio/dpio-service.c | 30 ++++++++++++++---------------
> 1 file changed, 15 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/soc/fsl/dpio/dpio-service.c b/drivers/soc/fsl/dpio/dpio-service.c
> index 317ca50b0c2b..025d9fb5660d 100644
> --- a/drivers/soc/fsl/dpio/dpio-service.c
> +++ b/drivers/soc/fsl/dpio/dpio-service.c
> @@ -140,10 +140,8 @@ struct dpaa2_io *dpaa2_io_create(const struct dpaa2_io_desc *desc,
> return NULL;
>
> /* check if CPU is out of range (-1 means any cpu) */
> - if (desc->cpu != DPAA2_IO_ANY_CPU && desc->cpu >= num_possible_cpus()) {
> - kfree(obj);
> - return NULL;
> - }
> + if (desc->cpu != DPAA2_IO_ANY_CPU && desc->cpu >= num_possible_cpus())
> + goto free_obj;
>
> obj->dpio_desc = *desc;
> obj->swp_desc.cena_bar = obj->dpio_desc.regs_cena;
> @@ -158,11 +156,8 @@ struct dpaa2_io *dpaa2_io_create(const struct dpaa2_io_desc *desc,
> qman_256_cycles_per_ns = 256000 / (obj->swp_desc.qman_clk / 1000000);
> obj->swp_desc.qman_256_cycles_per_ns = qman_256_cycles_per_ns;
> obj->swp = qbman_swp_init(&obj->swp_desc);
> -
> - if (!obj->swp) {
> - kfree(obj);
> - return NULL;
> - }
> + if (!obj->swp)
> + goto free_obj;
>
> INIT_LIST_HEAD(&obj->node);
> spin_lock_init(&obj->lock_mgmt_cmd);
> @@ -192,6 +187,10 @@ struct dpaa2_io *dpaa2_io_create(const struct dpaa2_io_desc *desc,
> obj->frames = 0;
>
> return obj;
> +
> +free_obj:
> + kfree(obj);
> + return NULL;
> }
>
> /**
> @@ -665,10 +664,8 @@ struct dpaa2_io_store *dpaa2_io_store_create(unsigned int max_frames,
> ret->max = max_frames;
> size = max_frames * sizeof(struct dpaa2_dq) + 64;
> ret->alloced_addr = kzalloc(size, GFP_KERNEL);
> - if (!ret->alloced_addr) {
> - kfree(ret);
> - return NULL;
> - }
> + if (!ret->alloced_addr)
> + goto free_ret;
>
> ret->vaddr = PTR_ALIGN(ret->alloced_addr, 64);
> ret->paddr = dma_map_single(dev, ret->vaddr,
> @@ -676,14 +673,17 @@ struct dpaa2_io_store *dpaa2_io_store_create(unsigned int max_frames,
> DMA_FROM_DEVICE);
> if (dma_mapping_error(dev, ret->paddr)) {
> kfree(ret->alloced_addr);
> - kfree(ret);
> - return NULL;
> + goto free_ret;
> }
>
> ret->idx = 0;
> ret->dev = dev;
>
> return ret;
> +
> +free_ret:
> + kfree(ret);
> + return NULL;
> }
> EXPORT_SYMBOL_GPL(dpaa2_io_store_create);
>
next prev parent reply other threads:[~2026-07-04 9:19 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-11 10:02 [PATCH] soc: fsl: dpio: Use common error handling code in two functions Markus Elfring
2026-07-04 9:19 ` Christophe Leroy (CS GROUP) [this message]
2026-07-04 10:11 ` Markus Elfring
2026-07-06 10:36 ` [PATCH v2 0/2] soc: fsl: dpio: Use scope-based resource management " Markus Elfring
2026-07-06 10:38 ` [PATCH v2 1/2] soc: fsl: dpio: Use scope-based resource management in dpaa2_io_store_create() Markus Elfring
2026-07-27 11:31 ` Dan Carpenter
2026-07-29 8:24 ` Markus Elfring
2026-07-27 12:08 ` Ioana Ciornei
2026-07-27 12:24 ` [v2 " Markus Elfring
2026-07-27 12:46 ` Ioana Ciornei
2026-07-27 12:52 ` Markus Elfring
2026-07-28 6:55 ` Markus Elfring
2026-07-28 10:40 ` Ioana Ciornei
2026-07-28 11:15 ` Markus Elfring
2026-07-06 10:40 ` [PATCH v2 2/2] soc: fsl: dpio: Use scope-based resource management in dpaa2_io_create() Markus Elfring
2026-07-27 11:32 ` Dan Carpenter
2026-07-27 12:14 ` [v2 " Markus Elfring
2026-07-27 12:09 ` [PATCH v2 " Ioana Ciornei
2026-07-27 13:14 ` [v2 " Markus Elfring
2026-07-27 9:57 ` [PATCH v2 0/2] soc: fsl: dpio: Use scope-based resource management in two functions Christophe Leroy (CS GROUP)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d95d2f4c-f3cf-44eb-b61b-79ba7891674d@kernel.org \
--to=chleroy@kernel.org \
--cc=Markus.Elfring@web.de \
--cc=Roy.Pledge@nxp.com \
--cc=kernel-janitors@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.