diff options
Diffstat (limited to 'drivers/net/eth16i.c')
-rw-r--r-- | drivers/net/eth16i.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/net/eth16i.c b/drivers/net/eth16i.c index 74cf38d50..fa5ae74e4 100644 --- a/drivers/net/eth16i.c +++ b/drivers/net/eth16i.c @@ -434,7 +434,7 @@ __initfunc(static int eth16i_probe1(struct device *dev, short ioaddr)) dev->irq = irq; /* Try to obtain interrupt vector */ - if(request_irq(dev->irq, ð16i_interrupt, 0, "eth16i", NULL)) { + if(request_irq(dev->irq, ð16i_interrupt, 0, "eth16i", dev)) { printk("%s: %s at %#3x, but is unusable due conflict on IRQ %d.\n", dev->name, cardname, ioaddr, irq); return EAGAIN; @@ -807,8 +807,6 @@ static int eth16i_open(struct device *dev) struct eth16i_local *lp = (struct eth16i_local *)dev->priv; int ioaddr = dev->base_addr; - irq2dev_map[dev->irq] = dev; - /* Powerup the chip */ outb(0xc0 | POWERUP, ioaddr + CONFIG_REG_1); @@ -1106,7 +1104,7 @@ static void eth16i_rx(struct device *dev) static void eth16i_interrupt(int irq, void *dev_id, struct pt_regs *regs) { - struct device *dev = (struct device *)(irq2dev_map[irq]); + struct device *dev = dev_id; struct eth16i_local *lp; int ioaddr = 0, status; @@ -1227,8 +1225,7 @@ int init_module(void) void cleanup_module(void) { unregister_netdev( &dev_eth16i ); - free_irq( dev_eth16i.irq, NULL ); - irq2dev_map[ dev_eth16i.irq ] = NULL; + free_irq( dev_eth16i.irq, &dev_eth16i ); release_region( dev_eth16i.base_addr, ETH16I_IO_EXTENT ); } |