drivers/usb/host/ohci-exynos.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
exynos_ohci_resume() ignores clk_prepare_enable() and proceeds to PHY
and OHCI restoration.
Return a clock failure before enabling the PHY. The existing PHY failure
path continues to undo a successfully enabled clock.
The issue was found by our static-analysis tool and manually reviewed.
Fixes: e864abed546f ("USB: ohci-exynos: add clock gating to suspend/resume")
Assisted-by: gpt 5
Signed-off-by: Pengpeng Hou <hppiscas@163.com>
---
drivers/usb/host/ohci-exynos.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/usb/host/ohci-exynos.c b/drivers/usb/host/ohci-exynos.c
index cc5cb0900988..aa4eb9f9d69b 100644
--- a/drivers/usb/host/ohci-exynos.c
+++ b/drivers/usb/host/ohci-exynos.c
@@ -231,7 +231,9 @@ static int exynos_ohci_resume(struct device *dev)
struct exynos_ohci_hcd *exynos_ohci = to_exynos_ohci(hcd);
int ret;
- clk_prepare_enable(exynos_ohci->clk);
+ ret = clk_prepare_enable(exynos_ohci->clk);
+ if (ret)
+ return ret;
ret = exynos_ohci_phy_enable(dev);
if (ret) {
--
2.50.1 (Apple Git-155)
On 06/09/2026 05:40, Pengpeng Hou wrote:
> exynos_ohci_resume() ignores clk_prepare_enable() and proceeds to PHY
No, clk_prepare_enable() is not ignored. It is called.
What is ignored is the return status, because it does not matter. It
cannot possibly fail, it is simple MMIO access within internals of the SoC.
Anyway, please rephrase the commit msg.
> and OHCI restoration.
>
> Return a clock failure before enabling the PHY. The existing PHY failure
> path continues to undo a successfully enabled clock.
>
> The issue was found by our static-analysis tool and manually reviewed.
>
> Fixes: e864abed546f ("USB: ohci-exynos: add clock gating to suspend/resume")
IMO, I have doubts whether this is a fix, because actual error cannot
happen in practice.
Best regards,
Krzysztof
© 2016 - 2026 Red Hat, Inc.