]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - releases/3.10.34/can-flexcan-flexcan_open-fix-error-path-if-flexcan_chip_start-fails.patch
4.9-stable patches
[thirdparty/kernel/stable-queue.git] / releases / 3.10.34 / can-flexcan-flexcan_open-fix-error-path-if-flexcan_chip_start-fails.patch
CommitLineData
0f2bcbd3
GKH
1From 7e9e148af01ef388efb6e2490805970be4622792 Mon Sep 17 00:00:00 2001
2From: Marc Kleine-Budde <mkl@pengutronix.de>
3Date: Fri, 28 Feb 2014 14:52:01 +0100
4Subject: can: flexcan: flexcan_open(): fix error path if flexcan_chip_start() fails
5
6From: Marc Kleine-Budde <mkl@pengutronix.de>
7
8commit 7e9e148af01ef388efb6e2490805970be4622792 upstream.
9
10If flexcan_chip_start() in flexcan_open() fails, the interrupt is not freed,
11this patch adds the missing cleanup.
12
13Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
14Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
15
16---
17 drivers/net/can/flexcan.c | 4 +++-
18 1 file changed, 3 insertions(+), 1 deletion(-)
19
20--- a/drivers/net/can/flexcan.c
21+++ b/drivers/net/can/flexcan.c
22@@ -862,7 +862,7 @@ static int flexcan_open(struct net_devic
23 /* start chip and queuing */
24 err = flexcan_chip_start(dev);
25 if (err)
26- goto out_close;
27+ goto out_free_irq;
28
29 can_led_event(dev, CAN_LED_EVENT_OPEN);
30
31@@ -871,6 +871,8 @@ static int flexcan_open(struct net_devic
32
33 return 0;
34
35+ out_free_irq:
36+ free_irq(dev->irq, dev);
37 out_close:
38 close_candev(dev);
39 out: