]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commitdiff
can: rcar_canfd: rcar_canfd_channel_probe(): register the CAN device when fully ready
authorLad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Mon, 21 Feb 2022 22:59:35 +0000 (22:59 +0000)
committerStefan Bader <stefan.bader@canonical.com>
Fri, 20 May 2022 13:17:55 +0000 (15:17 +0200)
BugLink: https://bugs.launchpad.net/bugs/1969678
[ 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>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
drivers/net/can/rcar/rcar_canfd.c

index edaa1ca972c15533863624b7c768f8adbc9c79b9..d4e9815ca26ffb56a3677efb7a4fa6e6d9f0ecf0 100644 (file)
@@ -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,
                       RCANFD_NAPI_WEIGHT);
+       spin_lock_init(&priv->tx_lock);
+       devm_can_led_init(ndev);
+       gpriv->ch[priv->channel] = priv;
        err = register_candev(ndev);
        if (err) {
                dev_err(&pdev->dev,
                        "register_candev() failed, error %d\n", err);
                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);
        return 0;