提交 c5048a7b 编写于 作者: L Lad Prabhakar 提交者: Marc Kleine-Budde

can: rcar_canfd: rcar_canfd_channel_probe(): register the CAN device when fully ready

Register the CAN device only when all the necessary initialization is
completed. This patch makes sure all the data structures and locks are
initialized before registering the CAN device.

Link: https://lore.kernel.org/all/20220221225935.12300-1-prabhakar.mahadev-lad.rj@bp.renesas.comReported-by: NPavel Machek <pavel@denx.de>
Signed-off-by: NLad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: NPavel Machek <pavel@denx.de>
Reviewed-by: NUlrich Hecht <uli+renesas@fpond.eu>
Signed-off-by: NMarc Kleine-Budde <mkl@pengutronix.de>
上级 035b0fcf
...@@ -1715,15 +1715,15 @@ static int rcar_canfd_channel_probe(struct rcar_canfd_global *gpriv, u32 ch, ...@@ -1715,15 +1715,15 @@ static int rcar_canfd_channel_probe(struct rcar_canfd_global *gpriv, u32 ch,
netif_napi_add(ndev, &priv->napi, rcar_canfd_rx_poll, netif_napi_add(ndev, &priv->napi, rcar_canfd_rx_poll,
RCANFD_NAPI_WEIGHT); RCANFD_NAPI_WEIGHT);
spin_lock_init(&priv->tx_lock);
devm_can_led_init(ndev);
gpriv->ch[priv->channel] = priv;
err = register_candev(ndev); err = register_candev(ndev);
if (err) { if (err) {
dev_err(&pdev->dev, dev_err(&pdev->dev,
"register_candev() failed, error %d\n", err); "register_candev() failed, error %d\n", err);
goto fail_candev; goto fail_candev;
} }
spin_lock_init(&priv->tx_lock);
devm_can_led_init(ndev);
gpriv->ch[priv->channel] = priv;
dev_info(&pdev->dev, "device registered (channel %u)\n", priv->channel); dev_info(&pdev->dev, "device registered (channel %u)\n", priv->channel);
return 0; return 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册