All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Jiang <dave.jiang@intel.com>
To: Shuai Xue <xueshuai@linux.alibaba.com>,
	vkoul@kernel.org, Vinicius Costa Gomes <vinicius.gomes@intel.com>
Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v1 2/5] dmaengine: idxd: fix memory leak in error handling path of idxd_setup_engines
Date: Fri, 14 Feb 2025 09:35:57 -0700	[thread overview]
Message-ID: <d85f4871-4ebd-4f8b-b743-e46db522e4f8@intel.com> (raw)
In-Reply-To: <20250110082237.21135-3-xueshuai@linux.alibaba.com>



On 1/10/25 1:22 AM, Shuai Xue wrote:
> Memory allocated for engines is not freed if an error occurs during
> idxd_setup_engines(). To fix it, free the allocated memory in the
> reverse order of allocation before exiting the function in case of an
> error.
> 
> Signed-off-by: Shuai Xue <xueshuai@linux.alibaba.com>
Reviewed-by: Dave Jiang <dave.jiang@intel.com>

> ---
>  drivers/dma/idxd/init.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/dma/idxd/init.c b/drivers/dma/idxd/init.c
> index 6772d9251cd7..12df895dcbe9 100644
> --- a/drivers/dma/idxd/init.c
> +++ b/drivers/dma/idxd/init.c
> @@ -275,6 +275,7 @@ static int idxd_setup_engines(struct idxd_device *idxd)
>  		rc = dev_set_name(conf_dev, "engine%d.%d", idxd->id, engine->id);
>  		if (rc < 0) {
>  			put_device(conf_dev);
> +			kfree(engine);
>  			goto err;
>  		}
>  
> @@ -288,7 +289,10 @@ static int idxd_setup_engines(struct idxd_device *idxd)
>  		engine = idxd->engines[i];
>  		conf_dev = engine_confdev(engine);
>  		put_device(conf_dev);
> +		kfree(engine);
>  	}
> +	kfree(idxd->engines);
> +
>  	return rc;
>  }
>  


  reply	other threads:[~2025-02-14 16:36 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-10  8:22 [PATCH v1 0/5] dmaengine: idxd: fix memory leak in error handling path Shuai Xue
2025-01-10  8:22 ` [PATCH v1 1/5] dmaengine: idxd: fix memory leak in error handling path of idxd_setup_wqs Shuai Xue
2025-02-14 16:33   ` Dave Jiang
2025-01-10  8:22 ` [PATCH v1 2/5] dmaengine: idxd: fix memory leak in error handling path of idxd_setup_engines Shuai Xue
2025-02-14 16:35   ` Dave Jiang [this message]
2025-01-10  8:22 ` [PATCH v1 3/5] dmaengine: idxd: fix memory leak in error handling path of idxd_setup_groups Shuai Xue
2025-02-14 16:40   ` Dave Jiang
2025-01-10  8:22 ` [PATCH v1 4/5] dmaengine: idxd: fix memory leak in error handling path of idxd_alloc Shuai Xue
2025-02-14 16:59   ` Dave Jiang
2025-02-14 17:01   ` Dave Jiang
2025-02-15  2:04     ` Shuai Xue
2025-01-10  8:22 ` [PATCH v1 5/5] dmaengine: idxd: fix memory leak in error handling path of idxd_pci_probe Shuai Xue
2025-02-14 23:41   ` Vinicius Costa Gomes
2025-02-15  2:06     ` Shuai Xue
2025-02-14  6:43 ` [PATCH v1 0/5] dmaengine: idxd: fix memory leak in error handling path Shuai Xue
2025-02-14 16:17   ` Dave Jiang
2025-02-14 17:15 ` [PATCH " Markus Elfring
2025-02-14 17:22   ` Dave Jiang
2025-02-15  2:01     ` Shuai Xue

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=d85f4871-4ebd-4f8b-b743-e46db522e4f8@intel.com \
    --to=dave.jiang@intel.com \
    --cc=dmaengine@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=vinicius.gomes@intel.com \
    --cc=vkoul@kernel.org \
    --cc=xueshuai@linux.alibaba.com \
    /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.