From: James S. <jsi...@us...> - 2001-10-08 16:31:54
|
Update of /cvsroot/linux-mips/linux/drivers/net In directory usw-pr-cvs1:/tmp/cvs-serv32445 Modified Files: sgiseeq.c Log Message: Improve error handling. Index: sgiseeq.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/net/sgiseeq.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- sgiseeq.c 2001/07/09 19:28:47 1.2 +++ sgiseeq.c 2001/10/08 16:31:35 1.3 @@ -450,19 +450,22 @@ unsigned long flags; int err; - save_and_cli(flags); - if (request_irq(dev->irq, sgiseeq_interrupt, 0, sgiseeqstr, (void *) dev)) { + __save_and_cli(flags); + + err = -EAGAIN; + if (request_irq(dev->irq, sgiseeq_interrupt, 0, sgiseeqstr, dev)) { printk("Seeq8003: Can't get irq %d\n", dev->irq); - restore_flags(flags); - return -EAGAIN; + goto out; } err = init_seeq(dev, sp, sregs); if (err) - return err; + goto out; netif_start_queue(dev); - restore_flags(flags); - return 0; + +out: + __restore_flags(flags); + return err; } static int sgiseeq_close(struct net_device *dev) |