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

Reply via email to