* [PATCH 0/2] Support for pmic-glink in SM8475
@ 2026-07-29 19:48 Esteban Urrutia via B4 Relay
2026-07-29 19:48 ` [PATCH 1/2] dt-bindings: soc: qcom: qcom,pmic-glink: Add compatible string for SM8475 Esteban Urrutia via B4 Relay
2026-07-29 19:48 ` [PATCH 2/2] usb: typec: ucsi: ucsi_glink: " Esteban Urrutia via B4 Relay
0 siblings, 2 replies; 4+ messages in thread
From: Esteban Urrutia via B4 Relay @ 2026-07-29 19:48 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Heikki Krogerus, Greg Kroah-Hartman
Cc: linux-arm-msm, devicetree, linux-kernel, linux-usb, phone-devel,
Esteban Urrutia
This series adds a compatible string for SM8475 for supporting
pmic-glink.
This way, confusion is avoided, because SM8475 takes most
(CPU/GPU/reserved-memory/etc.) things from SM8450 and some (PHY/eUSB)
from SM8550.
Instead of using one or the other, add a different compatible string.
Signed-off-by: Esteban Urrutia <esteuwu@proton.me>
---
Esteban Urrutia (2):
dt-bindings: soc: qcom: qcom,pmic-glink: Add compatible string for SM8475
usb: typec: ucsi: ucsi_glink: Add compatible string for SM8475
Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml | 1 +
drivers/usb/typec/ucsi/ucsi_glink.c | 1 +
2 files changed, 2 insertions(+)
---
base-commit: 78bc8af4affb9a732504eb22eeac7d1e50883853
change-id: 20260729-sm8475-pmic-glink-57e56f98d2b3
Best regards,
--
Esteban Urrutia <esteuwu@proton.me>
^ permalink raw reply [flat|nested] 4+ messages in thread* [PATCH 1/2] dt-bindings: soc: qcom: qcom,pmic-glink: Add compatible string for SM8475 2026-07-29 19:48 [PATCH 0/2] Support for pmic-glink in SM8475 Esteban Urrutia via B4 Relay @ 2026-07-29 19:48 ` Esteban Urrutia via B4 Relay 2026-07-29 19:48 ` [PATCH 2/2] usb: typec: ucsi: ucsi_glink: " Esteban Urrutia via B4 Relay 1 sibling, 0 replies; 4+ messages in thread From: Esteban Urrutia via B4 Relay @ 2026-07-29 19:48 UTC (permalink / raw) To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heikki Krogerus, Greg Kroah-Hartman Cc: linux-arm-msm, devicetree, linux-kernel, linux-usb, phone-devel, Esteban Urrutia From: Esteban Urrutia <esteuwu@proton.me> Add compatible string for pmic-glink. Signed-off-by: Esteban Urrutia <esteuwu@proton.me> --- Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml index 16ad4f5698fc..c80c72411381 100644 --- a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml @@ -30,6 +30,7 @@ properties: - qcom,sc8280xp-pmic-glink - qcom,sm8350-pmic-glink - qcom,sm8450-pmic-glink + - qcom,sm8475-pmic-glink - qcom,sm8550-pmic-glink - const: qcom,pmic-glink - items: -- 2.55.0 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/2] usb: typec: ucsi: ucsi_glink: Add compatible string for SM8475 2026-07-29 19:48 [PATCH 0/2] Support for pmic-glink in SM8475 Esteban Urrutia via B4 Relay 2026-07-29 19:48 ` [PATCH 1/2] dt-bindings: soc: qcom: qcom,pmic-glink: Add compatible string for SM8475 Esteban Urrutia via B4 Relay @ 2026-07-29 19:48 ` Esteban Urrutia via B4 Relay 2026-07-29 19:58 ` sashiko-bot 1 sibling, 1 reply; 4+ messages in thread From: Esteban Urrutia via B4 Relay @ 2026-07-29 19:48 UTC (permalink / raw) To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heikki Krogerus, Greg Kroah-Hartman Cc: linux-arm-msm, devicetree, linux-kernel, linux-usb, phone-devel, Esteban Urrutia From: Esteban Urrutia <esteuwu@proton.me> Add compatible string for pmic-glink. Signed-off-by: Esteban Urrutia <esteuwu@proton.me> --- drivers/usb/typec/ucsi/ucsi_glink.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/usb/typec/ucsi/ucsi_glink.c b/drivers/usb/typec/ucsi/ucsi_glink.c index 12e07b9fe622..78a0ea349ed4 100644 --- a/drivers/usb/typec/ucsi/ucsi_glink.c +++ b/drivers/usb/typec/ucsi/ucsi_glink.c @@ -381,6 +381,7 @@ static const struct of_device_id pmic_glink_ucsi_of_quirks[] = { { .compatible = "qcom,sc8280xp-pmic-glink", .data = &quirk_sc8280xp, }, { .compatible = "qcom,sm8350-pmic-glink", .data = &quirk_sc8180x, }, { .compatible = "qcom,sm8450-pmic-glink", .data = &quirk_sm8450, }, + { .compatible = "qcom,sm8475-pmic-glink", .data = &quirk_sm8450, }, { .compatible = "qcom,sm8550-pmic-glink", .data = &quirk_sm8450, }, { .compatible = "qcom,x1e80100-pmic-glink", .data = &quirk_x1e80100, }, {} -- 2.55.0 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] usb: typec: ucsi: ucsi_glink: Add compatible string for SM8475 2026-07-29 19:48 ` [PATCH 2/2] usb: typec: ucsi: ucsi_glink: " Esteban Urrutia via B4 Relay @ 2026-07-29 19:58 ` sashiko-bot 0 siblings, 0 replies; 4+ messages in thread From: sashiko-bot @ 2026-07-29 19:58 UTC (permalink / raw) To: Esteban Urrutia; +Cc: robh, devicetree, conor+dt Thank you for your contribution! Sashiko AI review found 4 potential issue(s) to consider: Pre-existing issues: - [High] Passing a `struct fwnode_handle *` to the `%pOFn` format specifier causes a type mismatch and potential kernel oops. - [High] Missing `cancel_work_sync()` in the driver unbind path leads to a use-after-free if `notify_work` or `register_work` runs after the device is removed. - [High] Integer underflow when checking the response payload length allows an out-of-bounds read if a short message is received. - [High] Missing payload length validation leads to an out-of-bounds read if a short message is received. -- --- Patch [2]: [PATCH 2/2] usb: typec: ucsi: ucsi_glink: Add compatible string for SM8475 --- commit d5c2643112ae1e7d3eabd43df5daa56760614154 Author: Esteban Urrutia <esteuwu@proton.me> usb: typec: ucsi: ucsi_glink: Add compatible string for SM8475 Add compatible string for pmic-glink. > diff --git a/drivers/usb/typec/ucsi/ucsi_glink.c b/drivers/usb/typec/ucsi/ucsi_glink.c > index 12e07b9fe6228..78a0ea349ed41 100644 > --- a/drivers/usb/typec/ucsi/ucsi_glink.c > +++ b/drivers/usb/typec/ucsi/ucsi_glink.c > @@ -381,6 +381,7 @@ static const struct of_device_id pmic_glink_ucsi_of_quirks[] = { > { .compatible = "qcom,sc8280xp-pmic-glink", .data = &quirk_sc8280xp, }, > { .compatible = "qcom,sm8350-pmic-glink", .data = &quirk_sc8180x, }, > { .compatible = "qcom,sm8450-pmic-glink", .data = &quirk_sm8450, }, > + { .compatible = "qcom,sm8475-pmic-glink", .data = &quirk_sm8450, }, [Severity: High] This isn't a bug introduced by this patch, but while reviewing this file I noticed a pre-existing issue on the error path in pmic_glink_ucsi_probe(): drivers/usb/typec/ucsi/ucsi_glink.c:pmic_glink_ucsi_probe() { ... ret = fwnode_property_read_u32(fwnode, "reg", &port); if (ret < 0) { dev_err(dev, "missing reg property of %pOFn\n", fwnode); return ret; } ... } The %pOFn format specifier expects a struct device_node pointer, but fwnode is a struct fwnode_handle pointer. Does vsprintf misinterpret the pointer and read invalid memory here, potentially leading to a panic? [Severity: High] This is a pre-existing issue, but I also noticed a potential use-after-free if a work item executes after the device is removed: drivers/usb/typec/ucsi/ucsi_glink.c:pmic_glink_ucsi_remove() { struct pmic_glink_ucsi *ucsi = dev_get_drvdata(&adev->dev); /* Unregister first to stop having read & writes */ ucsi_unregister(ucsi->ucsi); } If an asynchronous notification from the PMIC GLINK processor schedules notify_work or register_work just before or during device removal, the work could execute after devres frees ucsi. Is a cancel_work_sync() missing here to prevent the race? [Severity: High] This is another pre-existing issue, but I wanted to ask about a potential integer underflow in pmic_glink_ucsi_read_ack(): drivers/usb/typec/ucsi/ucsi_glink.c:pmic_glink_ucsi_read_ack() { ... if (buf_len > len - sizeof(struct pmic_glink_hdr) - sizeof(u32)) buf_len = len - sizeof(struct pmic_glink_hdr) - sizeof(u32); memcpy(&ret_code, buf + buf_len, sizeof(u32)); ... } If len is smaller than the combined sizeof headers, would the subtraction underflow to a large unsigned value because sizeof evaluates to size_t? If so, buf_len would remain unmodified, potentially causing an out-of-bounds read when memcpy reads from buf + buf_len. [Severity: High] This is also a pre-existing issue, but does pmic_glink_ucsi_write_ack() miss a length check? drivers/usb/typec/ucsi/ucsi_glink.c:pmic_glink_ucsi_write_ack() { const struct ucsi_write_buf_resp_msg *resp = data; if (resp->ret_code) return; ... } If the PMIC GLINK processor sends a short message where len is less than sizeof(*resp), we immediately dereference resp->ret_code. Can this lead to an out-of-bounds read? > { .compatible = "qcom,sm8550-pmic-glink", .data = &quirk_sm8450, }, > { .compatible = "qcom,x1e80100-pmic-glink", .data = &quirk_x1e80100, }, > {} -- Sashiko AI review · https://sashiko.dev/#/patchset/20260729-sm8475-pmic-glink-v1-0-c2e1967c04de@proton.me?part=2 ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-07-29 19:58 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-07-29 19:48 [PATCH 0/2] Support for pmic-glink in SM8475 Esteban Urrutia via B4 Relay 2026-07-29 19:48 ` [PATCH 1/2] dt-bindings: soc: qcom: qcom,pmic-glink: Add compatible string for SM8475 Esteban Urrutia via B4 Relay 2026-07-29 19:48 ` [PATCH 2/2] usb: typec: ucsi: ucsi_glink: " Esteban Urrutia via B4 Relay 2026-07-29 19:58 ` sashiko-bot
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox