Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9aea7779 authored by Alban Bedel's avatar Alban Bedel Committed by David S. Miller
Browse files

drivers: net: xgene: Fix crash on DT systems



On DT systems the driver require a clock, but the probe just print a
warning and continue, leading to a crash when resetting the device.
To fix this crash and properly handle probe deferals only ignore the
missing clock if DT isn't used or if the clock doesn't exist.

Signed-off-by: default avatarAlban Bedel <alban.bedel@avionic-design.de>
Acked-by: default avatarIyappan Subramanian <isubramanian@apm.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent e3330039
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -1749,6 +1749,12 @@ static int xgene_enet_get_resources(struct xgene_enet_pdata *pdata)

	pdata->clk = devm_clk_get(&pdev->dev, NULL);
	if (IS_ERR(pdata->clk)) {
		/* Abort if the clock is defined but couldn't be retrived.
		 * Always abort if the clock is missing on DT system as
		 * the driver can't cope with this case.
		 */
		if (PTR_ERR(pdata->clk) != -ENOENT || dev->of_node)
			return PTR_ERR(pdata->clk);
		/* Firmware may have set up the clock already. */
		dev_info(dev, "clocks have been setup already\n");
	}