diff mbox series

can: flexcan: Fix runtime PM imbalance on error

Message ID 20200522094340.18059-1-dinghao.liu@zju.edu.cn
State Awaiting Upstream
Delegated to: David Miller
Headers show
Series can: flexcan: Fix runtime PM imbalance on error | expand

Commit Message

Dinghao Liu May 22, 2020, 9:43 a.m. UTC
When register_flexcandev() returns an error code, a
pairing runtime PM usage counter decrement is needed
to keep the counter balanced.

Also, call pm_runtime_disable() when register_flexcandev()
returns an error code.

Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>
---
 drivers/net/can/flexcan.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Joakim Zhang May 25, 2020, 1:36 a.m. UTC | #1
> -----Original Message-----
> From: linux-can-owner@vger.kernel.org <linux-can-owner@vger.kernel.org>
> On Behalf Of Dinghao Liu
> Sent: 2020年5月22日 17:44
> To: dinghao.liu@zju.edu.cn; kjlu@umn.edu
> Cc: Wolfgang Grandegger <wg@grandegger.com>; Marc Kleine-Budde
> <mkl@pengutronix.de>; David S. Miller <davem@davemloft.net>; Jakub
> Kicinski <kuba@kernel.org>; linux-can@vger.kernel.org;
> netdev@vger.kernel.org; linux-kernel@vger.kernel.org
> Subject: [PATCH] can: flexcan: Fix runtime PM imbalance on error
> 
> When register_flexcandev() returns an error code, a pairing runtime PM
> usage counter decrement is needed to keep the counter balanced.
> 
> Also, call pm_runtime_disable() when register_flexcandev() returns an error
> code.
> 
> Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>

A patch has already been sent out to fix this issue:
https://www.spinics.net/lists/linux-can/msg03052.html

Reviewed-by: Joakim Zhang <qiangqing.zhang@nxp.com>

Best Regards,
Joakim Zhang
> ---
>  drivers/net/can/flexcan.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c index
> 94d10ec954a0..ea193426e5ae 100644
> --- a/drivers/net/can/flexcan.c
> +++ b/drivers/net/can/flexcan.c
> @@ -1666,6 +1666,8 @@ static int flexcan_probe(struct platform_device
> *pdev)
>  	return 0;
> 
>   failed_register:
> +	pm_runtime_put_noidle(&pdev->dev);
> +	pm_runtime_disable(&pdev->dev);
>  	free_candev(dev);
>  	return err;
>  }
> --
> 2.17.1
diff mbox series

Patch

diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
index 94d10ec954a0..ea193426e5ae 100644
--- a/drivers/net/can/flexcan.c
+++ b/drivers/net/can/flexcan.c
@@ -1666,6 +1666,8 @@  static int flexcan_probe(struct platform_device *pdev)
 	return 0;
 
  failed_register:
+	pm_runtime_put_noidle(&pdev->dev);
+	pm_runtime_disable(&pdev->dev);
 	free_candev(dev);
 	return err;
 }