jazzsonic: free irq if sonic_open() fails
Subsystems (3)
PATCH 1/3 jazzsonic: free irq if sonic_open() fails
jazzsonic_open() doesn't check sonic_open() return code. If it is error we must free requested IRQ.
Signed-off-by Kulikov Vasiliy <[email protected]>
--- drivers/net/jazzsonic.c | 17 +++++++++++++---- 1 files changed, 13 insertions(+), 4 deletions(-)
drivers/net/jazzsonic.c +13 -4
@@ -82,11 +82,20 @@ static unsigned short known_revisions[]static int jazzsonic_open (struct net_device * dev) { -if (request_irq (dev->irq, sonic_interrupt,IRQF_DISABLED ,"sonic" , dev)) { -printk (KERN_ERR "%s: unable to get IRQ %d.\n" , dev->name, dev->irq); -return -EAGAIN ; +int retval; + + retval =request_irq (dev->irq, sonic_interrupt,IRQF_DISABLED , +"sonic" , dev); +if (retval) { +printk (KERN_ERR "%s: unable to get IRQ %d.\n" , + dev->name, dev->irq); +return retval; } -return sonic_open (dev); + + retval =sonic_open (dev); +if (retval) +free_irq (dev->irq, dev); +return retval; }static int jazzsonic_close (struct net_device * dev)
Signature · 1 line
1.7.0.4