can: rcar_canfd: rcar_canfd_channel_probe(): register the CAN device when fully ready
[ Upstream commit c5048a7b2c23ab589f3476a783bd586b663eda5b ] 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.com Reported-by: Pavel Machek <pavel@denx.de> Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> Reviewed-by: Pavel Machek <pavel@denx.de> Reviewed-by: Ulrich Hecht <uli+renesas@fpond.eu> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
4006447f55
commit
23352749f0
@ -1598,15 +1598,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;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user