diff --git a/devices/forcedeth-2.6.19-ethercat.c b/devices/forcedeth-2.6.19-ethercat.c index 55ae4aa10556ef759b7bdc50df48b070c2190f5f..b24a6207433f33e5a5ef5251e69e2e2f26473379 100644 --- a/devices/forcedeth-2.6.19-ethercat.c +++ b/devices/forcedeth-2.6.19-ethercat.c @@ -4273,12 +4273,12 @@ static int nv_close(struct net_device *dev) nv_txrx_reset(dev); /* disable interrupts on the nic or we will lock up */ - base = get_hwbase(dev); - if (!np->ecdev) nv_disable_hw_interrupts(dev, np->irqmask); - pci_push(base); - dprintk(KERN_INFO "%s: Irqmask is zero again\n", dev->name); - if (!np->ecdev) { + base = get_hwbase(dev); + nv_disable_hw_interrupts(dev, np->irqmask); + pci_push(base); + dprintk(KERN_INFO "%s: Irqmask is zero again\n", dev->name); + spin_unlock_irq(&np->lock); nv_free_irq(dev);