1 |
From 38753c013c6dec3010dcffc9689cb25a069c4b52 Mon Sep 17 00:00:00 2001 |
2 |
From: Sasha Levin <sashal@kernel.org> |
3 |
Date: Mon, 21 Feb 2022 22:59:35 +0000 |
4 |
Subject: can: rcar_canfd: rcar_canfd_channel_probe(): register the CAN device |
5 |
when fully ready |
6 |
|
7 |
From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> |
8 |
|
9 |
[ Upstream commit c5048a7b2c23ab589f3476a783bd586b663eda5b ] |
10 |
|
11 |
Register the CAN device only when all the necessary initialization is |
12 |
completed. This patch makes sure all the data structures and locks are |
13 |
initialized before registering the CAN device. |
14 |
|
15 |
Link: https://lore.kernel.org/all/20220221225935.12300-1-prabhakar.mahadev-lad.rj@bp.renesas.com |
16 |
Reported-by: Pavel Machek <pavel@denx.de> |
17 |
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> |
18 |
Reviewed-by: Pavel Machek <pavel@denx.de> |
19 |
Reviewed-by: Ulrich Hecht <uli+renesas@fpond.eu> |
20 |
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de> |
21 |
Signed-off-by: Sasha Levin <sashal@kernel.org> |
22 |
--- |
23 |
drivers/net/can/rcar/rcar_canfd.c | 6 +++--- |
24 |
1 file changed, 3 insertions(+), 3 deletions(-) |
25 |
|
26 |
diff --git a/drivers/net/can/rcar/rcar_canfd.c b/drivers/net/can/rcar/rcar_canfd.c |
27 |
index 388521e70837..2f44c567ebd7 100644 |
28 |
--- a/drivers/net/can/rcar/rcar_canfd.c |
29 |
+++ b/drivers/net/can/rcar/rcar_canfd.c |
30 |
@@ -1720,15 +1720,15 @@ static int rcar_canfd_channel_probe(struct rcar_canfd_global *gpriv, u32 ch, |
31 |
|
32 |
netif_napi_add(ndev, &priv->napi, rcar_canfd_rx_poll, |
33 |
RCANFD_NAPI_WEIGHT); |
34 |
+ spin_lock_init(&priv->tx_lock); |
35 |
+ devm_can_led_init(ndev); |
36 |
+ gpriv->ch[priv->channel] = priv; |
37 |
err = register_candev(ndev); |
38 |
if (err) { |
39 |
dev_err(&pdev->dev, |
40 |
"register_candev() failed, error %d\n", err); |
41 |
goto fail_candev; |
42 |
} |
43 |
- spin_lock_init(&priv->tx_lock); |
44 |
- devm_can_led_init(ndev); |
45 |
- gpriv->ch[priv->channel] = priv; |
46 |
dev_info(&pdev->dev, "device registered (channel %u)\n", priv->channel); |
47 |
return 0; |
48 |
|
49 |
-- |
50 |
2.34.1 |
51 |
|