| From 4e4edd2b67923729686d9d404ca7f7273fcc1c45 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 25 Sep 2025 09:38:06 +0800 |
| Subject: phy: freescale: Initialize priv->lock |
| |
| From: Xiaolei Wang <xiaolei.wang@windriver.com> |
| |
| [ Upstream commit 95e5905698983df94069e185f9eb3c67c7cf75d5 ] |
| |
| Initialize priv->lock to fix the following warning. |
| |
| WARNING: CPU: 0 PID: 12 at kernel/locking/mutex.c:577 __mutex_lock+0x70c/0x8b8 |
| Modules linked in: |
| Hardware name: Freescale i.MX8QM MEK (DT) |
| Call trace: |
| __mutex_lock+0x70c/0x8b8 (P) |
| mutex_lock_nested+0x24/0x30 |
| imx_hsio_power_on+0x4c/0x764 |
| phy_power_on+0x7c/0x12c |
| imx_pcie_host_init+0x1d0/0x4d4 |
| dw_pcie_host_init+0x188/0x4b0 |
| imx_pcie_probe+0x324/0x6f4 |
| platform_probe+0x5c/0x98 |
| really_probe+0xbc/0x29c |
| __driver_probe_device+0x78/0x12c |
| driver_probe_device+0xd8/0x160 |
| __device_attach_driver+0xb8/0x138 |
| bus_for_each_drv+0x84/0xe4 |
| __device_attach_async_helper+0xb8/0xdc |
| async_run_entry_fn+0x34/0xe0 |
| process_one_work+0x220/0x694 |
| worker_thread+0x1c0/0x36c |
| kthread+0x14c/0x224 |
| |
| Fixes: 82c56b6dd24f ("phy: freescale: imx8qm-hsio: Add i.MX8QM HSIO PHY driver support") |
| Signed-off-by: Xiaolei Wang <xiaolei.wang@windriver.com> |
| Reviewed-by: Frank Li <Frank.Li@nxp.com> |
| Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> |
| Link: https://patch.msgid.link/20250925013806.569658-1-xiaolei.wang@windriver.com |
| Signed-off-by: Vinod Koul <vkoul@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/phy/freescale/phy-fsl-imx8qm-hsio.c | 5 ++++- |
| 1 file changed, 4 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/phy/freescale/phy-fsl-imx8qm-hsio.c b/drivers/phy/freescale/phy-fsl-imx8qm-hsio.c |
| index 5dca93cd325c8..977d21d753a59 100644 |
| --- a/drivers/phy/freescale/phy-fsl-imx8qm-hsio.c |
| +++ b/drivers/phy/freescale/phy-fsl-imx8qm-hsio.c |
| @@ -533,7 +533,7 @@ static struct phy *imx_hsio_xlate(struct device *dev, |
| |
| static int imx_hsio_probe(struct platform_device *pdev) |
| { |
| - int i; |
| + int i, ret; |
| void __iomem *off; |
| struct device *dev = &pdev->dev; |
| struct device_node *np = dev->of_node; |
| @@ -545,6 +545,9 @@ static int imx_hsio_probe(struct platform_device *pdev) |
| return -ENOMEM; |
| priv->dev = &pdev->dev; |
| priv->drvdata = of_device_get_match_data(dev); |
| + ret = devm_mutex_init(dev, &priv->lock); |
| + if (ret) |
| + return ret; |
| |
| /* Get HSIO configuration mode */ |
| if (of_property_read_string(np, "fsl,hsio-cfg", &priv->hsio_cfg)) |
| -- |
| 2.51.0 |
| |