From: sashiko-bot@kernel.org
To: "Pranjal Shrivastava" <praan@google.com>
Cc: linux-pci@vger.kernel.org
Subject: Re: [PATCH v11 13/16] iommu/arm-smmu-v3: Implement pm_runtime & system sleep ops
Date: Tue, 29 Sep 2026 06:17:23 +0000 [thread overview]
Message-ID: <20260929061723.CBFA11F000FF@smtp.kernel.org> (raw)
In-Reply-To: <20260929034510.2023173-14-praan@google.com>
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Medium] iommu/arm-smmu-v3: invalid synchronize_irq(0) call when gerror IRQ is absent
- [Low] iommu/arm-smmu-v3: dead code via unconditional pm_ops assignment
--
commit f1b9ff2a5159bd528e9134e997eee772c624264d
Author: Pranjal Shrivastava <praan@google.com>
iommu/arm-smmu-v3: Implement pm_runtime & system sleep ops
This commit implements pm_runtime and system sleep operations for the
arm-smmu-v3 driver. It adds suspend and resume callbacks that coordinate
command queue draining and device resets to manage power state transitions.
> diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
> index 89a4e756ff174..e127e3be3a6ba 100644
> --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
> +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
[ ... ]
> @@ -5830,6 +5930,150 @@ static void arm_smmu_device_shutdown(struct platform_device *pdev)
> arm_smmu_device_disable(smmu);
> }
>
> +static int __maybe_unused arm_smmu_runtime_suspend(struct device *dev)
> +{
> + struct arm_smmu_device *smmu = dev_get_drvdata(dev);
[ ... ]
> + /* Disable IRQ generation */
> + arm_smmu_disable_irqs(smmu);
> +
> + /* Wait for pending gerror handlers */
> + synchronize_irq(smmu->combined_irq ? smmu->combined_irq : smmu->gerr_irq);
[Severity: Medium]
Is there a risk of calling synchronize_irq(0) here if both smmu->combined_irq
and smmu->gerr_irq are 0?
If the device firmware configuration lacks a combined IRQ and a gerror IRQ,
and MSI allocation fails or falls back to wired interrupts, both variables
would be initialized to 0. This evaluates to synchronize_irq(0), leading
to an erroneous synchronization on an unrelated system interrupt (like a
timer mapped to IRQ 0). Could this statement verify that the resulting IRQ
is non-zero before invoking synchronize_irq()?
> +
> + /* Handle any pending gerrors before powering down */
> + arm_smmu_handle_gerror(smmu);
[ ... ]
> @@ -5846,6 +6090,7 @@ static struct platform_driver arm_smmu_driver = {
> .driver = {
> .name = "arm-smmu-v3",
> .of_match_table = arm_smmu_of_match,
> + .pm = &arm_smmu_pm_ops,
[Severity: Low]
Does this code leave dead functions compiled into the binary when CONFIG_PM
is disabled?
Assigning the arm_smmu_pm_ops structure unconditionally instead of wrapping it
in pm_ptr() prevents the compiler from discarding the unused suspend and resume
functions. Should this be wrapped as pm_ptr(&arm_smmu_pm_ops) to avoid
dead code bloat?
> .suppress_bind_attrs = true,
> },
> .probe = arm_smmu_device_probe,
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260929034510.2023173-1-praan@google.com?part=13
next prev parent reply other threads:[~2026-09-29 6:17 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-29 3:44 [PATCH v11 00/16] iommu/arm-smmu-v3: Implement Runtime/System Sleep ops Pranjal Shrivastava
2026-09-29 3:44 ` [PATCH v11 01/16] iommu/arm-smmu-v3: Refactor arm_smmu_setup_irqs Pranjal Shrivastava
2026-09-29 3:59 ` sashiko-bot
2026-10-07 14:06 ` Will Deacon
2026-09-29 3:44 ` [PATCH v11 02/16] iommu/arm-smmu-v3: Add Q_POS() macro Pranjal Shrivastava
2026-09-29 4:01 ` sashiko-bot
2026-09-29 3:44 ` [PATCH v11 03/16] iommu/arm-smmu-v3: Add arm_smmu_drain_queue() helper Pranjal Shrivastava
2026-09-29 4:11 ` sashiko-bot
2026-09-30 18:24 ` Nicolin Chen
2026-09-30 20:17 ` Pranjal Shrivastava
2026-09-29 3:44 ` [PATCH v11 04/16] iommu/tegra241-cmdqv: Add a helper to drain VCMDQs Pranjal Shrivastava
2026-09-29 4:24 ` sashiko-bot
2026-09-29 3:44 ` [PATCH v11 05/16] iommu/arm-smmu-v3: Add a helper to drain cmd queues Pranjal Shrivastava
2026-09-29 4:31 ` sashiko-bot
2026-09-29 3:45 ` [PATCH v11 06/16] iommu/tegra241-cmdqv: Restore PROD and CONS after resume Pranjal Shrivastava
2026-09-29 4:42 ` sashiko-bot
2026-09-29 3:45 ` [PATCH v11 07/16] genirq/msi: Cache MSI message in irq_chip_write_msi_msg() Pranjal Shrivastava
2026-09-29 5:07 ` sashiko-bot
2026-09-29 3:45 ` [PATCH v11 08/16] genirq/msi: Provide msi_device_domain_restore_msi_msgs() Pranjal Shrivastava
2026-09-29 5:22 ` sashiko-bot
2026-09-29 3:45 ` [PATCH v11 09/16] iommu/arm-smmu-v3: Restore MSI config on resume Pranjal Shrivastava
2026-09-29 5:31 ` sashiko-bot
2026-10-07 14:07 ` Will Deacon
2026-09-29 3:45 ` [PATCH v11 10/16] iommu/arm-smmu-v3: Factor out arm_smmu_handle_gerror() Pranjal Shrivastava
2026-09-29 5:37 ` sashiko-bot
2026-09-30 18:34 ` Nicolin Chen
2026-09-30 20:00 ` Pranjal Shrivastava
2026-09-30 20:12 ` Nicolin Chen
2026-09-30 20:03 ` Pranjal Shrivastava
2026-10-07 14:07 ` Will Deacon
2026-09-29 3:45 ` [PATCH v11 11/16] iommu/arm-smmu-v3: Add CMDQ_PROD_STOP_FLAG to gate CMDQ submissions Pranjal Shrivastava
2026-09-29 5:55 ` sashiko-bot
2026-09-30 20:33 ` Nicolin Chen
2026-10-01 5:40 ` Pranjal Shrivastava
2026-10-01 18:03 ` Nicolin Chen
2026-10-02 16:47 ` Jason Gunthorpe
2026-10-02 21:11 ` Pranjal Shrivastava
2026-10-06 17:26 ` Nicolin Chen
2026-10-07 14:08 ` Will Deacon
2026-10-13 11:35 ` Robin Murphy
2026-09-29 3:45 ` [PATCH v11 12/16] iommu/tegra241-cmdqv: Add a helper to quiesce VCMDQs Pranjal Shrivastava
2026-09-29 6:05 ` sashiko-bot
2026-09-30 19:02 ` Nicolin Chen
2026-09-30 19:57 ` Pranjal Shrivastava
2026-09-30 20:03 ` Nicolin Chen
2026-09-29 3:45 ` [PATCH v11 13/16] iommu/arm-smmu-v3: Implement pm_runtime & system sleep ops Pranjal Shrivastava
2026-09-29 6:17 ` sashiko-bot [this message]
2026-10-01 20:22 ` Nicolin Chen
2026-10-07 14:08 ` Will Deacon
2026-09-29 3:45 ` [PATCH v11 14/16] iommu/arm-smmu-v3: Enable pm_runtime and setup devlinks Pranjal Shrivastava
2026-09-29 6:32 ` sashiko-bot
2026-09-29 3:45 ` [PATCH v11 15/16] iommu/arm-smmu-v3: Invoke pm_runtime before hw access Pranjal Shrivastava
2026-09-29 6:41 ` sashiko-bot
2026-09-29 3:45 ` [PATCH v11 16/16] iommu/arm-smmu-v3: Add KUnit unit tests for Runtime PM Pranjal Shrivastava
2026-09-29 6:48 ` sashiko-bot
2026-10-01 19:12 ` Nicolin Chen
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=20260929061723.CBFA11F000FF@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=praan@google.com \
--cc=sashiko-reviews@lists.linux.dev \
/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.