static int macsonic_open(struct net_device* dev) { int retval; retval = request_irq(dev->irq, sonic_interrupt, 0, "sonic", dev); if (retval) { printk(KERN_ERR "%s: unable to get IRQ %d.\n", dev->name, dev->irq); goto err; } if (dev->irq == IRQ_AUTO_3) { retval = request_irq(IRQ_NUBUS_9, macsonic_interrupt, 0, "sonic", dev); if (retval) { printk(KERN_ERR "%s: unable to get IRQ %d.\n", dev->name, IRQ_NUBUS_9); goto err_irq; } } retval = sonic_open(dev); if (retval) goto err_irq_nubus; return 0; err_irq_nubus: if (dev->irq == IRQ_AUTO_3) free_irq(IRQ_NUBUS_9, dev); err_irq: free_irq(dev->irq, dev); err: return retval; }
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; } return sonic_open(dev); }
static int macsonic_open(struct net_device* dev) { if (request_irq(dev->irq, &sonic_interrupt, IRQ_FLG_FAST, "sonic", dev)) { printk(KERN_ERR "%s: unable to get IRQ %d.\n", dev->name, dev->irq); return -EAGAIN; } if (dev->irq == IRQ_AUTO_3) if (request_irq(IRQ_NUBUS_9, &macsonic_interrupt, IRQ_FLG_FAST, "sonic", dev)) { printk(KERN_ERR "%s: unable to get IRQ %d.\n", dev->name, IRQ_NUBUS_9); free_irq(dev->irq, dev); return -EAGAIN; } return sonic_open(dev); }
static int jazzsonic_open(struct net_device* dev) { int retval; retval = request_irq(dev->irq, sonic_interrupt, 0, "sonic", dev); if (retval) { printk(KERN_ERR "%s: unable to get IRQ %d.\n", dev->name, dev->irq); return retval; } retval = sonic_open(dev); if (retval) free_irq(dev->irq, dev); return retval; }
static int macsonic_open(struct net_device* dev) { if (request_irq(dev->irq, &sonic_interrupt, IRQ_FLG_FAST, "sonic", dev)) { printk(KERN_ERR "%s: unable to get IRQ %d.\n", dev->name, dev->irq); return -EAGAIN; } /* Under the A/UX interrupt scheme, the onboard SONIC interrupt comes * in at priority level 3. However, we sometimes get the level 2 inter- * rupt as well, which must prevent re-entrance of the sonic handler. */ if (dev->irq == IRQ_AUTO_3) if (request_irq(IRQ_NUBUS_9, &macsonic_interrupt, IRQ_FLG_FAST, "sonic", dev)) { printk(KERN_ERR "%s: unable to get IRQ %d.\n", dev->name, IRQ_NUBUS_9); free_irq(dev->irq, dev); return -EAGAIN; } return sonic_open(dev); }
static int macsonic_open(struct net_device* dev) { int retval; retval = request_irq(dev->irq, sonic_interrupt, IRQ_FLG_FAST, "sonic", dev); if (retval) { printk(KERN_ERR "%s: unable to get IRQ %d.\n", dev->name, dev->irq); goto err; } /* Under the A/UX interrupt scheme, the onboard SONIC interrupt comes * in at priority level 3. However, we sometimes get the level 2 inter- * rupt as well, which must prevent re-entrance of the sonic handler. */ if (dev->irq == IRQ_AUTO_3) { retval = request_irq(IRQ_NUBUS_9, macsonic_interrupt, IRQ_FLG_FAST, "sonic", dev); if (retval) { printk(KERN_ERR "%s: unable to get IRQ %d.\n", dev->name, IRQ_NUBUS_9); goto err_irq; } } retval = sonic_open(dev); if (retval) goto err_irq_nubus; return 0; err_irq_nubus: if (dev->irq == IRQ_AUTO_3) free_irq(IRQ_NUBUS_9, dev); err_irq: free_irq(dev->irq, dev); err: return retval; }