From 4c0fca65d10548f68c040ed49bf1860ce0dda9b9 Mon Sep 17 00:00:00 2001 From: Dan Carpenter Date: Wed, 23 Apr 2025 11:23:53 +0300 Subject: [PATCH] usb: dwc3: qcom: Fix error handling in probe There are two issues: 1) Return -EINVAL if platform_get_resource() fails. Don't return success. 2) The devm_ioremap() function doesn't return error pointers, it returns NULL. Update the check. Fixes: 1881a32fe14d ("usb: dwc3: qcom: Transition to flattened model") Signed-off-by: Dan Carpenter Reviewed-by: Bjorn Andersson Acked-by: Thinh Nguyen Link: https://lore.kernel.org/r/aAijmfAph0FlTqg6@stanley.mountain Signed-off-by: Greg Kroah-Hartman --- drivers/usb/dwc3/dwc3-qcom.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/usb/dwc3/dwc3-qcom.c b/drivers/usb/dwc3/dwc3-qcom.c index cbba11589cd0..20c00ba3bc3d 100644 --- a/drivers/usb/dwc3/dwc3-qcom.c +++ b/drivers/usb/dwc3/dwc3-qcom.c @@ -740,15 +740,17 @@ static int dwc3_qcom_probe(struct platform_device *pdev) } r = platform_get_resource(pdev, IORESOURCE_MEM, 0); - if (!r) + if (!r) { + ret = -EINVAL; goto clk_disable; + } res = *r; res.end = res.start + SDM845_QSCRATCH_BASE_OFFSET; qcom->qscratch_base = devm_ioremap(dev, res.end, SDM845_QSCRATCH_SIZE); - if (IS_ERR(qcom->qscratch_base)) { - dev_err(dev, "failed to map qscratch region: %pe\n", qcom->qscratch_base); - ret = PTR_ERR(qcom->qscratch_base); + if (!qcom->qscratch_base) { + dev_err(dev, "failed to map qscratch region\n"); + ret = -ENOMEM; goto clk_disable; } -- 2.25.1