mirror of
https://github.com/torvalds/linux.git
synced 2026-06-07 05:55:44 +02:00
can: rcar_canfd: rcar_canfd_channel_probe(): register the CAN device when fully ready
[ Upstream commit c5048a7b2c ]
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
ebe106eac6
commit
efdd92c18e
|
|
@ -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