All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Szymon Durawa" <szymon.durawa@linux.intel.com>
Cc: linux-pci@vger.kernel.org
Subject: Re: [PATCH v5 4/8] PCI: vmd: Add vmd_create_bus()
Date: Thu, 25 Jun 2026 06:18:59 +0000	[thread overview]
Message-ID: <20260625061859.D10671F00A3A@smtp.kernel.org> (raw)
In-Reply-To: <20260625082940.1290740-5-szymon.durawa@linux.intel.com>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] Memory allocated by kasprintf for resource names is leaked on vmd_enable_domain() error paths.
--

commit 1ab8bc19707a3b648b92906666ae290aa0884407
Author: Szymon Durawa <szymon.durawa@linux.intel.com>

PCI: vmd: Add vmd_create_bus()

This commit moves the VMD bus initialization logic into a new helper function
vmd_create_bus(). It aims to simplify the domain enablement code without
introducing functional changes.

> diff --git a/drivers/pci/controller/vmd.c b/drivers/pci/controller/vmd.c
> index 443a0cefb7f74..c0a953df5f238 100644
> --- a/drivers/pci/controller/vmd.c
> +++ b/drivers/pci/controller/vmd.c

[ ... ]

> @@ -968,25 +994,12 @@ static int vmd_enable_domain(struct vmd_dev *vmd, unsigned long features)
>  
>  	sd->node = pcibus_to_node(vmd->dev->bus);
>  
> -	vmd->bus = pci_create_root_bus(&vmd->dev->dev, vmd->busn_start,
> -				       &vmd_ops, sd, &resources);
> -	if (!vmd->bus) {
> -		pci_bus_release_emul_domain_nr(sd->domain);
> -		pci_free_resource_list(&resources);
> -		vmd_remove_irq_domain(vmd);
> -		return -ENODEV;
> +	ret = vmd_create_bus(vmd, sd, offset);
> +	if (ret) {
> +		pci_err(vmd->dev, "Can't create bus: %d\n", ret);
> +		return ret;

[Severity: High]
Does this error path in vmd_enable_domain() leak the resource names allocated
by kasprintf() during the earlier memory bar configuration?

If vmd_create_bus() fails and returns an error, does this early return
lack the necessary rollback logic? Could this leave the previously
initialized bus active while its sysdata pointer (the vmd_dev struct)
is later freed by devres, resulting in a use-after-free?

>  	}
>  
> -	vmd_copy_host_bridge_flags(pci_find_host_bridge(vmd->dev->bus),
> -				   to_pci_host_bridge(vmd->bus->bridge));
> -
> -	vmd_attach_resources(vmd);
> -	if (vmd->irq_domain)
> -		dev_set_msi_domain(&vmd->bus->dev, vmd->irq_domain);
> -	else
> -		dev_set_msi_domain(&vmd->bus->dev,
> -				   dev_get_msi_domain(&vmd->dev->dev));
> -
>  	WARN(sysfs_create_link(&vmd->dev->dev.kobj, &vmd->bus->dev.kobj,
>  			       "domain"), "Can't create symlink to domain\n");
>

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260625082940.1290740-1-szymon.durawa@linux.intel.com?part=4

  reply	other threads:[~2026-06-25  6:19 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-25  8:29 [PATCH v5 0/8] VMD add second root bus support Szymon Durawa
2026-06-25  8:29 ` [PATCH v5 1/8] PCI: vmd: Add vmd_bus_enumeration() helper function Szymon Durawa
2026-06-25  6:15   ` sashiko-bot
2026-06-25  8:29 ` [PATCH v5 2/8] PCI: vmd: Add vmd_configure_cfgbar() " Szymon Durawa
2026-06-25  6:17   ` sashiko-bot
2026-06-25  8:29 ` [PATCH v5 3/8] PCI: vmd: Add vmd_configure_membar() and vmd_configure_membar1_membar2() Szymon Durawa
2026-06-25  6:19   ` sashiko-bot
2026-06-25  8:29 ` [PATCH v5 4/8] PCI: vmd: Add vmd_create_bus() Szymon Durawa
2026-06-25  6:18   ` sashiko-bot [this message]
2026-06-25  8:29 ` [PATCH v5 5/8] PCI: vmd: Replace hardcoded values with enum and defines Szymon Durawa
2026-06-25  6:20   ` sashiko-bot
2026-06-25  8:29 ` [PATCH v5 6/8] PCI: vmd: Convert bus and busn_start to an array Szymon Durawa
2026-06-25  6:18   ` sashiko-bot
2026-06-25  8:29 ` [PATCH v5 7/8] PCI: vmd: Add support for second rootbus under VMD Szymon Durawa
2026-06-25  6:20   ` sashiko-bot
2026-06-25  8:29 ` [PATCH v5 8/8] PCI: vmd: Add workaround for bus number hardwired to fixed non-zero value Szymon Durawa
2026-06-25  6:30   ` sashiko-bot

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=20260625061859.D10671F00A3A@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=sashiko-reviews@lists.linux.dev \
    --cc=szymon.durawa@linux.intel.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.