All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Yin Li" <yin.li@oss.qualcomm.com>
Cc: robh@kernel.org, conor+dt@kernel.org, devicetree@vger.kernel.org
Subject: Re: [PATCH RFC v2 07/10] arm_mpam: Fix mpam_dt_create_foundling_msc() to create MSC platform devices
Date: Mon, 14 Sep 2026 09:58:48 +0000	[thread overview]
Message-ID: <20260914095848.743281F000FF@smtp.kernel.org> (raw)
In-Reply-To: <20260914-mpam-resctrl-dt-knp-support-v2-7-bf6645bb2f65@oss.qualcomm.com>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] Mismatch between counted MSCs and created MSC platform devices prevents driver initialization.
--

commit bac73a6ff8544df56e037a08ea1cdb821fbb6bbc
Author: Yin Li <yin.li@oss.qualcomm.com>

arm_mpam: Fix mpam_dt_create_foundling_msc() to create MSC platform devices

This commit modifies mpam_dt_create_foundling_msc() to walk the cache's
children using for_each_child_of_node_scoped() and create a platform
device for the MSC child node, rather than for the cache node itself. It
also skips cache parents that have been marked disabled by the firmware.

> diff --git a/drivers/resctrl/mpam_devices.c b/drivers/resctrl/mpam_devices.c
> index 480e38cfa86dc..7ef3ed55b0665 100644
> --- a/drivers/resctrl/mpam_devices.c
> +++ b/drivers/resctrl/mpam_devices.c
> @@ -2366,23 +2366,20 @@ static struct platform_driver mpam_msc_driver = {
>   */
>  static void mpam_dt_create_foundling_msc(void)
>  {
> -	struct platform_device *pdev;
> -	struct device_node *cache;
> -
> -	for_each_compatible_node(cache, NULL, "cache") {
> -		struct device_node *cache_device;
> -
> -		if (of_node_check_flag(cache, OF_POPULATED))
> -			continue;
> -
> -		cache_device = of_find_matching_node_and_match(cache, mpam_of_match, NULL);
> -		if (!cache_device)
> +	for_each_compatible_node_scoped(cache, NULL, "cache") {
> +		if (!of_device_is_available(cache))
>  			continue;

[Severity: High]
Does skipping the creation of platform devices for MSCs under disabled caches
cause a mismatch with fw_num_msc?

Looking at mpam_dt_count_msc(), it appears to count all available MSCs without
checking if their parent cache is actually enabled:

drivers/resctrl/mpam_devices.c:mpam_dt_count_msc() {
    ...
	for_each_compatible_node(np, NULL, "arm,mpam-msc") {
		if (of_device_is_available(np))
			count++;
	}
    ...
}

If firmware has marked a cache node as disabled but the child arm,mpam-msc
node is not explicitly disabled, this counting mismatch causes fw_num_msc to
be greater than the number of successfully probed MSCs.

As a result, would the condition in mpam_msc_drv_probe() never evaluate to
true?

drivers/resctrl/mpam_devices.c:mpam_msc_drv_probe() {
    ...
	if (atomic_add_return(1, &mpam_num_msc) == fw_num_msc)
		mpam_register_cpuhp_callbacks(mpam_discovery_cpu_online, NULL,
					      "mpam:drv_probe");
    ...
}

This could completely prevent mpam_register_cpuhp_callbacks() from being
called and leave the MPAM subsystem functionally unusable.

>  
> -		pdev = of_platform_device_create(cache, "cache", NULL);
> -		if (!pdev)
> -			pr_err_once("Failed to create MSC devices under caches\n");
> +		for_each_child_of_node_scoped(cache, child) {
> +			if (!of_match_node(mpam_of_match, child))
> +				continue;
> +			if (!of_device_is_available(child))
> +				continue;
> +			if (of_node_check_flag(child, OF_POPULATED))
> +				continue;
> +			if (!of_platform_device_create(child, NULL, NULL))
> +				pr_err("Failed to create MSC device for %pOF\n", child);
> +		}
>  	}
>  }

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260914-mpam-resctrl-dt-knp-support-v2-0-bf6645bb2f65@oss.qualcomm.com?part=7

  reply	other threads:[~2026-09-14  9:58 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-14  9:37 [PATCH RFC v2 00/10] arm-mpam: Add basic device tree support for resctrl Yin Li
2026-09-14  9:37 ` [PATCH RFC v2 01/10] arm_mpam: Fix the RIS index range check in mpam_ris_create_locked Yin Li
2026-10-02 15:50   ` Ben Horgan
2026-09-14  9:37 ` [PATCH RFC v2 02/10] arm_mpam: Fix MSC MMIO window size off-by-one with resource_size() Yin Li
2026-09-14  9:58   ` sashiko-bot
2026-09-14  9:37 ` [PATCH RFC v2 03/10] dt-bindings: arm: Add MPAM MSC binding Yin Li
2026-09-14 14:41   ` Andre Przywara
2026-09-14 14:50     ` Andre Przywara
2026-09-15  2:49       ` Yin Li
2026-09-14  9:37 ` [PATCH RFC v2 04/10] cacheinfo: Expose the code to generate a cache-id from a device_node Yin Li
2026-09-14  9:52   ` sashiko-bot
2026-09-14 12:26   ` Andre Przywara
2026-09-15  6:49     ` Yin Li
2026-09-15  7:59       ` Andre Przywara
2026-09-16  2:29         ` Yin Li
2026-09-14  9:37 ` [PATCH RFC v2 05/10] arm_mpam: Add device tree support for MSC probing Yin Li
2026-09-14  9:52   ` sashiko-bot
2026-09-14  9:37 ` [PATCH RFC v2 06/10] arm_mpam: Add support for memory controller MSC on DT platforms Yin Li
2026-09-14  9:53   ` sashiko-bot
2026-09-14  9:37 ` [PATCH RFC v2 07/10] arm_mpam: Fix mpam_dt_create_foundling_msc() to create MSC platform devices Yin Li
2026-09-14  9:58   ` sashiko-bot [this message]
2026-09-23  2:59   ` Yin Li
2026-09-14  9:37 ` [PATCH RFC v2 08/10] dt-bindings: arm: Fix MPAM MSC binding schema and examples Yin Li
2026-09-14  9:37 ` [PATCH RFC v2 09/10] arm_mpam: Support MSC accessibility derivation from RIS nodes Yin Li
2026-09-14  9:37 ` [PATCH DNM RFC v2 10/10] arm64: dts: qcom: kaanapali: Add MPAM MSC nodes for the L2 caches Yin Li
2026-09-14  9:59   ` 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=20260914095848.743281F000FF@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=robh@kernel.org \
    --cc=sashiko-reviews@lists.linux.dev \
    --cc=yin.li@oss.qualcomm.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.