diff -urN /mnt/disk/linux/drivers/net/hp.c /linux/drivers/net/hp.c --- /mnt/disk/linux/drivers/net/hp.c Thu Nov 16 22:57:10 2000 +++ /linux/drivers/net/hp.c Sun Nov 19 22:04:58 2000 @@ -104,7 +104,7 @@ static unsigned version_printed; if (!request_region(ioaddr, HP_IO_EXTENT, dev->name)) - return -ENODEV; + return -EBUSY; /* Check for the HP physical address, 08 00 09 xx xx xx. */ /* This really isn't good enough: we may pick up HP LANCE boards @@ -114,7 +114,7 @@ || inb(ioaddr+2) != 0x09 || inb(ioaddr+14) == 0x57) { retval = -ENODEV; - goto out; + goto err_out; } /* Set up the parameters based on the board ID. @@ -128,16 +128,16 @@ } if (ei_debug && version_printed++ == 0) - printk(version); + printk(KERN_INFO "%s", version); /* Allocate dev->priv and fill in 8390 specific dev fields. */ if (ethdev_init(dev)) { - printk (" unable to get memory for dev->priv.\n"); + printk (KERN_ERR "%s: unable to get memory for dev->priv.\n", dev->name); retval = -ENOMEM; - goto out; + goto err_out; } - printk("%s: %s (ID %02x) at %#3x,", dev->name, name, board_id, ioaddr); + printk(KERN_INFO "%s: %s (ID %02x) at %#3x,", dev->name, name, board_id, ioaddr); for(i = 0; i < ETHER_ADDR_LEN; i++) printk(" %2.2x", dev->dev_addr[i] = inb(ioaddr + i)); @@ -165,14 +165,14 @@ if (*irqp == 0) { printk(" no free IRQ lines.\n"); retval = -EBUSY; - goto out1; + goto err_out_kfree; } } else { if (dev->irq == 2) dev->irq = 9; if ((retval = request_irq(dev->irq, ei_interrupt, 0, dev->name, dev))) { printk (" unable to get IRQ %d.\n", dev->irq); - goto out1; + goto err_out_kfree; } } @@ -194,10 +194,11 @@ hp_init_card(dev); return 0; -out1: + +err_out_kfree: kfree(dev->priv); dev->priv = NULL; -out: +err_out: release_region(ioaddr, HP_IO_EXTENT); return retval; }