[PATCH] usb: chipidea: ci_hdrc_imx: Fix NPD of usbmisc_data
Stefan Wahren
wahrenst at gmx.net
Tue Apr 22 11:56:01 PDT 2025
The commit 74adad500346 ("usb: chipidea: ci_hdrc_imx: decrement device's
refcount in .remove() and in the error path of .probe()") introduced
a NULL pointer dereference on platforms which have no usbmisc_data
(e.g. i.MX28). So add the missing checks in .probe() and .remove().
Fixes: 74adad500346 ("usb: chipidea: ci_hdrc_imx: decrement device's refcount in .remove() and in the error path of .probe()")
Cc: <stable at kernel.org>
Signed-off-by: Stefan Wahren <wahrenst at gmx.net>
---
drivers/usb/chipidea/ci_hdrc_imx.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/usb/chipidea/ci_hdrc_imx.c b/drivers/usb/chipidea/ci_hdrc_imx.c
index 1a7fc638213e..619779eef333 100644
--- a/drivers/usb/chipidea/ci_hdrc_imx.c
+++ b/drivers/usb/chipidea/ci_hdrc_imx.c
@@ -534,7 +534,8 @@ static int ci_hdrc_imx_probe(struct platform_device *pdev)
cpu_latency_qos_remove_request(&data->pm_qos_req);
data->ci_pdev = NULL;
err_put:
- put_device(data->usbmisc_data->dev);
+ if (data->usbmisc_data)
+ put_device(data->usbmisc_data->dev);
return ret;
}
@@ -559,7 +560,8 @@ static void ci_hdrc_imx_remove(struct platform_device *pdev)
if (data->hsic_pad_regulator)
regulator_disable(data->hsic_pad_regulator);
}
- put_device(data->usbmisc_data->dev);
+ if (data->usbmisc_data)
+ put_device(data->usbmisc_data->dev);
}
static void ci_hdrc_imx_shutdown(struct platform_device *pdev)
--
2.34.1
More information about the linux-arm-kernel
mailing list