Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

net/can/mscan: add error path to mscan_open()

Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Wolfram Sang and committed by
David S. Miller
323907ac 74ff60b2

+11 -5
+11 -5
drivers/net/can/mscan/mscan.c
··· 542 542 543 543 ret = request_irq(dev->irq, mscan_isr, 0, dev->name, dev); 544 544 if (ret < 0) { 545 - napi_disable(&priv->napi); 546 - printk(KERN_ERR "%s - failed to attach interrupt\n", 547 - dev->name); 548 - return ret; 545 + dev_err(dev->dev.parent, "failed to attach interrupt\n"); 546 + goto exit_napi_disable; 549 547 } 550 548 551 549 priv->open_time = jiffies; ··· 552 554 553 555 ret = mscan_start(dev); 554 556 if (ret) 555 - return ret; 557 + goto exit_free_irq; 556 558 557 559 netif_start_queue(dev); 558 560 559 561 return 0; 562 + 563 + exit_free_irq: 564 + priv->open_time = 0; 565 + free_irq(dev->irq, dev); 566 + exit_napi_disable: 567 + napi_disable(&priv->napi); 568 + close_candev(dev); 569 + return ret; 560 570 } 561 571 562 572 static int mscan_close(struct net_device *dev)