From: sashiko-bot@kernel.org
To: "Koichiro Den" <den@valinux.co.jp>
Cc: conor+dt@kernel.org, linux-pci@vger.kernel.org,
wsa+renesas@sang-engineering.com, devicetree@vger.kernel.org,
robh@kernel.org
Subject: Re: [PATCH v2 09/15] PCI: rcar-gen4: Add Root Port reset support
Date: Mon, 28 Sep 2026 17:03:17 +0000 [thread overview]
Message-ID: <20260928170317.B0B331F000FF@smtp.kernel.org> (raw)
In-Reply-To: <20260928165230.3397664-10-den@valinux.co.jp>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] goto mixing: functions mix goto-based cleanup and guard() declarations
--
commit f67d0a2e310ff1eec161853a2c467d65ff545950
Author: Koichiro Den <den@valinux.co.jp>
PCI: rcar-gen4: Add Root Port reset support
This commit implements the reset_root_port() callback for the host bridge to
allow PCI error recovery to reset and reinitialize the controller. It also
adds synchronization around the APP interrupt enables during the reset.
> diff --git a/drivers/pci/controller/dwc/pcie-rcar-gen4.c b/drivers/pci/controller/dwc/pcie-rcar-gen4.c
> index d1ea942727111..d3f04358bbe31 100644
> --- a/drivers/pci/controller/dwc/pcie-rcar-gen4.c
> +++ b/drivers/pci/controller/dwc/pcie-rcar-gen4.c
[ ... ]
> @@ -593,6 +619,7 @@ static int rcar_gen4_pcie_host_msi_init(struct dw_pcie_rp *pp)
> writel(0, rcar->base + AXIINTCCONT);
>
> /* Deconfigure MSI interrupt signal */
> + guard(raw_spinlock_irqsave)(&rcar->app_lock);
> val = readl(rcar->base + PCIEINTSTS0EN);
> val &= ~MSI_CTRL_INT;
> writel(val, rcar->base + PCIEINTSTS0EN);
[Severity: Low]
Does this mix goto-based cleanup and guard() declarations within
rcar_gen4_pcie_host_msi_init()?
The cleanup subsystem guidelines recommend converting all resources to
scope-based cleanup or none at all in a given function to avoid confusing
ownership semantics. Since rcar_gen4_pcie_host_msi_init() still uses a
goto-based error path to reach this block, would it be better to avoid
injecting guard() here and stick to explicit locking, or convert the entire
function to scope-based cleanup?
[ ... ]
> @@ -691,14 +718,83 @@ static int rcar_gen4_pcie_host_setup(struct dw_pcie_rp *pp)
[ ... ]
> +static int rcar_gen4_pcie_reset_root_port(struct pci_host_bridge *bridge,
> + struct pci_dev *pdev)
> +{
> + struct rcar_gen4_pcie *rcar = dev_get_drvdata(bridge->dev.parent);
> + struct dw_pcie *dw = &rcar->dw;
> + struct dw_pcie_rp *pp = &dw->pp;
> + struct device *dev = dw->dev;
> + int ret;
> +
> + guard(mutex)(&rcar->reset_lock);
> +
> + rcar_gen4_pcie_quiesce_irqs(rcar);
> +
> + dw_pcie_stop_link(dw);
> +
> + rcar_gen4_pcie_host_perst_assert(pp, true);
> +
> + ret = rcar->drvdata->reinit(rcar);
> + if (ret)
> + goto out;
[ ... ]
> +out:
> + rcar_gen4_pcie_resume_irqs(rcar, !ret);
> + if (ret)
> + dev_err(dev, "Root Port reset failed (%d); interrupts stay masked until a reset succeeds\n",
> + ret);
> +
> + return ret;
> +}
[Severity: Low]
Is it appropriate to mix guard(mutex) and goto-based cleanup flow in the
newly introduced rcar_gen4_pcie_reset_root_port() function?
Similar to the previous case, mixing goto labels with guard() can lead to
ambiguous cleanup paths. Could this function be written using entirely
scope-based constructs, or alternatively, entirely using manual lock
management to comply with the cleanup guidelines?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260928165230.3397664-1-den@valinux.co.jp?part=9
next prev parent reply other threads:[~2026-09-28 17:03 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-28 16:52 [PATCH v2 00/15] PCI: rcar-gen4: Recover from link down and route Root Port interrupts Koichiro Den
2026-09-28 16:52 ` [PATCH v2 01/15] PCI: dwc: Add Renesas to the RAS DES VSEC list Koichiro Den
2026-09-28 16:56 ` sashiko-bot
2026-09-28 16:52 ` [PATCH v2 02/15] PCI: rcar-gen4: Check live link status in link_up() Koichiro Den
2026-09-28 16:57 ` sashiko-bot
2026-10-03 18:29 ` Marek Vasut
2026-10-03 18:51 ` Marek Vasut
2026-10-05 4:22 ` Koichiro Den
2026-10-05 5:59 ` Marek Vasut
2026-09-28 16:52 ` [PATCH v2 03/15] dt-bindings: PCI: rcar-gen4: Add optional "aer" interrupt Koichiro Den
2026-09-28 16:58 ` sashiko-bot
2026-09-30 10:31 ` Krzysztof Kozlowski
2026-10-03 20:00 ` Marek Vasut
2026-09-28 16:52 ` [PATCH v2 04/15] PCI: dwc: Export dw_handle_msi_irq() Koichiro Den
2026-09-28 16:58 ` sashiko-bot
2026-10-03 20:02 ` Marek Vasut
2026-09-28 16:52 ` [PATCH v2 05/15] PCI: rcar-gen4: Move deinitialization helpers before SoC initialization Koichiro Den
2026-09-28 16:57 ` sashiko-bot
2026-10-03 20:23 ` Marek Vasut
2026-09-28 16:52 ` [PATCH v2 06/15] PCI: rcar-gen4: Assert resets when Gen5 PHY initialization fails Koichiro Den
2026-09-28 16:59 ` sashiko-bot
2026-10-03 21:34 ` Marek Vasut
2026-09-28 16:52 ` [PATCH v2 07/15] PCI: rcar-gen4: Separate hardware setup from resource acquisition Koichiro Den
2026-09-28 16:56 ` sashiko-bot
2026-10-03 23:41 ` Marek Vasut
2026-09-28 16:52 ` [PATCH v2 08/15] PCI: rcar-gen4: Add a controller reinitialization callback Koichiro Den
2026-09-28 17:02 ` sashiko-bot
2026-10-03 23:54 ` Marek Vasut
2026-10-05 4:31 ` Koichiro Den
2026-09-28 16:52 ` [PATCH v2 09/15] PCI: rcar-gen4: Add Root Port reset support Koichiro Den
2026-09-28 17:03 ` sashiko-bot [this message]
2026-10-04 0:11 ` Marek Vasut
2026-10-05 6:14 ` Koichiro Den
2026-09-28 16:52 ` [PATCH v2 10/15] PCI: rcar-gen4: Take over the iMSI-RX interrupt Koichiro Den
2026-09-28 17:04 ` sashiko-bot
2026-09-29 17:43 ` Geert Uytterhoeven
2026-09-30 6:38 ` Koichiro Den
2026-10-04 1:17 ` Marek Vasut
2026-10-04 0:53 ` Marek Vasut
2026-10-05 17:05 ` Koichiro Den
2026-09-28 16:52 ` [PATCH v2 11/15] PCI: rcar-gen4: Recover the Root Port on link down Koichiro Den
2026-09-28 17:07 ` sashiko-bot
2026-10-04 1:38 ` Marek Vasut
2026-09-28 16:52 ` [PATCH v2 12/15] PCI: dwc: Let glue drivers hide the Root Port MSI capabilities Koichiro Den
2026-09-28 16:59 ` sashiko-bot
2026-09-28 16:52 ` [PATCH v2 13/15] PCI: rcar-gen4: Route Root Port AER to a virtual Root Port IRQ Koichiro Den
2026-09-28 17:06 ` sashiko-bot
2026-10-04 2:52 ` Marek Vasut
2026-09-28 16:52 ` [PATCH v2 14/15] PCI: rcar-gen4: Route Root Port PME and bandwidth notifications Koichiro Den
2026-09-28 17:08 ` sashiko-bot
2026-10-04 4:40 ` Marek Vasut
2026-10-05 17:09 ` Koichiro Den
2026-09-28 16:52 ` [PATCH v2 15/15] arm64: dts: renesas: r8a779f0: Describe the PCIe AER interrupts Koichiro Den
2026-09-28 16:59 ` sashiko-bot
2026-10-03 20:00 ` Marek Vasut
2026-10-05 17:11 ` Koichiro Den
2026-10-06 5:20 ` Marek Vasut
2026-10-03 17:46 ` [PATCH v2 00/15] PCI: rcar-gen4: Recover from link down and route Root Port interrupts Marek Vasut
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=20260928170317.B0B331F000FF@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=conor+dt@kernel.org \
--cc=den@valinux.co.jp \
--cc=devicetree@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=robh@kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
--cc=wsa+renesas@sang-engineering.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.