* [PATCH 2/2] phy: qcom: qmp-pcie: Check clock-output-names count in the multi-PHY driver
2026-08-25 22:57 [PATCH 1/2] phy: qcom: qmp-pcie: Select MFD_SYSCON for the multi-PHY driver David Carlier
@ 2026-08-25 22:57 ` David Carlier
2026-08-26 9:09 ` Konrad Dybcio
2026-08-25 23:11 ` [PATCH 1/2] phy: qcom: qmp-pcie: Select MFD_SYSCON for " sashiko-bot
2026-08-26 9:09 ` Konrad Dybcio
2 siblings, 1 reply; 5+ messages in thread
From: David Carlier @ 2026-08-25 22:57 UTC (permalink / raw)
To: vkoul
Cc: neil.armstrong, qiang.yu, mani, konrad.dybcio, krishna.chundru,
linux-phy, linux-arm-msm, linux-kernel, David Carlier
of_property_count_strings() returns a negative errno when the property
is missing or malformed. The value was passed straight to
devm_kcalloc(), whose overflow check rejected it, turning a device tree
problem into a bogus -ENOMEM with no diagnostic.
Fixes: 1781be3c8a5d ("phy: qcom: qmp-pcie: Add QMP PCIe Multi-PHY driver")
Signed-off-by: David Carlier <devnexen@gmail.com>
---
drivers/phy/qualcomm/phy-qcom-qmp-pcie-multiphy.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-pcie-multiphy.c b/drivers/phy/qualcomm/phy-qcom-qmp-pcie-multiphy.c
index e93cba4369fb..e747ff9c3e5d 100644
--- a/drivers/phy/qualcomm/phy-qcom-qmp-pcie-multiphy.c
+++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcie-multiphy.c
@@ -555,6 +555,9 @@ static int qmp_pcie_multiphy_register_clocks(struct device *dev,
int i, ret;
num_pipe_outputs = of_property_count_strings(np, "clock-output-names");
+ if (num_pipe_outputs < 0)
+ return dev_err_probe(dev, num_pipe_outputs,
+ "failed to read clock-output-names\n");
qmp_data->num_pipe_outputs = num_pipe_outputs;
qmp_data->pipe_out_clks = devm_kcalloc(dev, num_pipe_outputs,
--
2.55.0
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply related [flat|nested] 5+ messages in thread* Re: [PATCH 2/2] phy: qcom: qmp-pcie: Check clock-output-names count in the multi-PHY driver
2026-08-25 22:57 ` [PATCH 2/2] phy: qcom: qmp-pcie: Check clock-output-names count in " David Carlier
@ 2026-08-26 9:09 ` Konrad Dybcio
0 siblings, 0 replies; 5+ messages in thread
From: Konrad Dybcio @ 2026-08-26 9:09 UTC (permalink / raw)
To: David Carlier, vkoul
Cc: neil.armstrong, qiang.yu, mani, krishna.chundru, linux-phy,
linux-arm-msm, linux-kernel
On 8/26/26 12:57 AM, David Carlier wrote:
> of_property_count_strings() returns a negative errno when the property
> is missing or malformed. The value was passed straight to
> devm_kcalloc(), whose overflow check rejected it, turning a device tree
> problem into a bogus -ENOMEM with no diagnostic.
>
> Fixes: 1781be3c8a5d ("phy: qcom: qmp-pcie: Add QMP PCIe Multi-PHY driver")
> Signed-off-by: David Carlier <devnexen@gmail.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] phy: qcom: qmp-pcie: Select MFD_SYSCON for the multi-PHY driver
2026-08-25 22:57 [PATCH 1/2] phy: qcom: qmp-pcie: Select MFD_SYSCON for the multi-PHY driver David Carlier
2026-08-25 22:57 ` [PATCH 2/2] phy: qcom: qmp-pcie: Check clock-output-names count in " David Carlier
@ 2026-08-25 23:11 ` sashiko-bot
2026-08-26 9:09 ` Konrad Dybcio
2 siblings, 0 replies; 5+ messages in thread
From: sashiko-bot @ 2026-08-25 23:11 UTC (permalink / raw)
To: David Carlier; +Cc: vkoul, olteanv, linux-phy, neil.armstrong
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
New issues:
- [Low] Unmet direct dependency warning caused by unconditionally selecting MFD_SYSCON in a driver supporting COMPILE_TEST without inheriting its HAS_IOMEM dependency.
Pre-existing issues:
- [High] Incomplete fix: The regular QMP PCIe driver (PHY_QCOM_QMP_PCIE) also unconditionally calls syscon_regmap_lookup_by_phandle_args() but still lacks a select for MFD_SYSCON, leaving it vulnerable to the exact same probe failure.
--
commit ca7057ced5dd6d2650998c03785e590bdadcd6f2
Author: David Carlier <devnexen@gmail.com>
phy: qcom: qmp-pcie: Select MFD_SYSCON for the multi-PHY driver
The driver reads the active link mode through
syscon_regmap_lookup_by_phandle_args(). Without CONFIG_MFD_SYSCON, the stub
returns -ENOTSUPP, causing probe failures. This patch adds the missing
MFD_SYSCON selection to the PHY_QCOM_QMP_PCIE_MULTIPHY driver.
> diff --git a/drivers/phy/qualcomm/Kconfig b/drivers/phy/qualcomm/Kconfig
> index d910a5d1a1ac3..9113e10992457 100644
> --- a/drivers/phy/qualcomm/Kconfig
> +++ b/drivers/phy/qualcomm/Kconfig
> @@ -81,6 +81,7 @@ config PHY_QCOM_QMP_PCIE_MULTIPHY
> tristate "Qualcomm QMP PCIe Multi PHY Driver"
> depends on PCI || COMPILE_TEST
> select GENERIC_PHY
> + select MFD_SYSCON
[Severity: Low]
Does this unconditionally select MFD_SYSCON without inheriting its hardware
dependencies?
When configuring the kernel with COMPILE_TEST enabled on an architecture
lacking HAS_IOMEM (such as s390 without PCI or UML without IOMEM), this can
trigger Kconfig warnings for unmet direct dependencies and potential build
failures.
[Severity: High]
This is a pre-existing issue, but does the regular PHY_QCOM_QMP_PCIE driver
have the exact same probe failure vulnerability?
In drivers/phy/qualcomm/Kconfig, config PHY_QCOM_QMP_PCIE lacks a select for
MFD_SYSCON:
config PHY_QCOM_QMP_PCIE
tristate "Qualcomm QMP PCIe PHY Driver"
depends on PCI || COMPILE_TEST
select GENERIC_PHY
This driver unconditionally calls syscon_regmap_lookup_by_phandle_args() in
drivers/phy/qualcomm/phy-qcom-qmp-pcie.c:qmp_pcie_get_4ln_config():
tcsr = syscon_regmap_lookup_by_phandle_args(qmp->dev->of_node,
"qcom,4ln-config-sel",
ARRAY_SIZE(args), args);
if (IS_ERR(tcsr)) {
ret = PTR_ERR(tcsr);
if (ret == -ENOENT)
return 0;
dev_err(qmp->dev, "failed to lookup syscon: %d\n", ret);
return ret;
}
If MFD_SYSCON is disabled, the stub returns -ENOTSUPP. Since this explicitly
checks for -ENOENT but not -ENOTSUPP, wouldn't the probe fail unconditionally
and leave the PCIe bus non-functional?
> help
> Enable this to support the QMP PCIe PHY transceiver that is used
> [ ... ]
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260825225729.230493-1-devnexen@gmail.com?part=1
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH 1/2] phy: qcom: qmp-pcie: Select MFD_SYSCON for the multi-PHY driver
2026-08-25 22:57 [PATCH 1/2] phy: qcom: qmp-pcie: Select MFD_SYSCON for the multi-PHY driver David Carlier
2026-08-25 22:57 ` [PATCH 2/2] phy: qcom: qmp-pcie: Check clock-output-names count in " David Carlier
2026-08-25 23:11 ` [PATCH 1/2] phy: qcom: qmp-pcie: Select MFD_SYSCON for " sashiko-bot
@ 2026-08-26 9:09 ` Konrad Dybcio
2 siblings, 0 replies; 5+ messages in thread
From: Konrad Dybcio @ 2026-08-26 9:09 UTC (permalink / raw)
To: David Carlier, vkoul
Cc: neil.armstrong, qiang.yu, mani, krishna.chundru, linux-phy,
linux-arm-msm, linux-kernel
On 8/26/26 12:57 AM, David Carlier wrote:
> The driver reads the active link mode through
> syscon_regmap_lookup_by_phandle_args(). Without CONFIG_MFD_SYSCON the
> stub returning -ENOTSUPP is compiled in instead, so probe fails for
> every device and no PHY is ever registered.
>
> Nothing in the build catches this: the driver still compiles, and arm64
> defconfig happens to enable MFD_SYSCON through an unrelated select.
>
> Fixes: 1781be3c8a5d ("phy: qcom: qmp-pcie: Add QMP PCIe Multi-PHY driver")
> Signed-off-by: David Carlier <devnexen@gmail.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 5+ messages in thread