Pavel Roskin <[EMAIL PROTECTED]> : > index 0000000..b05a9a5 > --- /dev/null > +++ b/drivers/net/wireless/orinoco_pci.h [...] > +static int orinoco_pci_resume(struct pci_dev *pdev) > +{ > + struct net_device *dev = pci_get_drvdata(pdev); > + struct orinoco_private *priv = netdev_priv(dev); > + unsigned long flags; > + int err; > + > + pci_set_power_state(pdev, 0); > + pci_enable_device(pdev); > + pci_restore_state(pdev); > + > + err = request_irq(pdev->irq, orinoco_interrupt, SA_SHIRQ, > + dev->name, dev); > + if (err) { > + printk(KERN_ERR "%s: cannot re-allocate IRQ on resume\n", > + dev->name); > + pci_disable_device(pdev); > + return -EBUSY; > + } > + > + err = orinoco_reinit_firmware(dev); > + if (err) { > + printk(KERN_ERR "%s: error %d re-initializing firmware " > + "on resume\n", dev->name, err); > + return err; > + } > + > + spin_lock_irqsave(&priv->lock, flags);
Interruptions are enabled. No need to save/restore. > + > + netif_device_attach(dev); > + > + priv->hw_unavailable--; > + > + if (priv->open && (! priv->hw_unavailable)) { > + err = __orinoco_up(dev); I wonder if it would be enough to issue hermes_set_irqmask() later in __orinoco_up() to release this irq disabled section. -- Ueimor - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html